C# ASP.Net堆栈中的InlineData属性如何工作?
出于好奇,我下载了开源项目asp.net-webstack来检查源代码。我在C#中发现unittest如下:C# ASP.Net堆栈中的InlineData属性如何工作?,c#,unit-testing,xunit.net,C#,Unit Testing,Xunit.net,出于好奇,我下载了开源项目asp.net-webstack来检查源代码。我在C#中发现unittest如下: // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. using System.Net.Http; using Microsoft.TestCommon; namespace
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
using System.Net.Http;
using Microsoft.TestCommon;
namespace System.Web.Http.Routing
{
public class HttpRouteTest
{
[Theory]
[InlineData("123 456")]
[InlineData("123 {456")]
[InlineData("123 [45]6")]
[InlineData("123 (4)56")]
[InlineData("abc+56")]
[InlineData("abc.56")]
[InlineData("abc*56")]
[InlineData(@"hello12.1[)]*^$=!@23}")]
public void GetRouteData_HandlesUrlEncoding(string id)
{
HttpRoute route = new HttpRoute("{controller}/{id}");
Uri uri = new Uri("http://localhost/test/" + id + "/");
IHttpRouteData routeData = route.GetRouteData("", new HttpRequestMessage(HttpMethod.Get, uri));
Assert.Equal("test", routeData.Values["controller"]);
Assert.Equal(id, routeData.Values["id"]);
}
}
}
如何从VisualStudio运行此测试?没有TestMethod和TestClass属性。上下文菜单中的标准执行不起作用
如何对C#中的多个数据集运行unittest是一种明智的方法吗?据我所知,
InlineData
是一种xUnit测试属性
在Visual Studio(2012或更高版本)中,当添加对xUnit
NuGet包的引用时,将xUnit测试适配器(即NuGet包xUnit.runner.visualstudio
)连接到测试项目中,这就使得xUnit测试适配器能够正常工作
以下是一个链接,其中包含更多详细信息:
InlineData
是一个xUnit测试属性
在Visual Studio(2012或更高版本)中,当添加对xUnit
NuGet包的引用时,将xUnit测试适配器(即NuGet包xUnit.runner.visualstudio
)连接到测试项目中,这就使得xUnit测试适配器能够正常工作
以下是一个链接,其中包含更多详细信息:
xUnit.runner.visualstudio
)的引用,该引用使VS2012+中的VS runner可以发现测试。有关概述,请参阅。在xUnit v2中,xUnit的NuGet包包含对NuGet(xUnit.runner.visualstudio
)的引用,该NuGet使VS2012+中的VS runner可以发现测试。有关概述,请参阅。这只是一个xUnit测试。我不知道您使用的是哪种“标准执行”,但如果您有一个xUnit测试运行程序,它应该可以。它只是一个xUnit测试。我不知道您使用的是哪种“标准执行”,但如果您有一个xUnit测试运行程序,应该可以。[by me](虽然它特别适用于桌面测试[by me](虽然它特别适用于桌面测试,但情况已不再如此,VS 2015的def,但我认为早期版本(实际上是)的def是一个更好的链接,它指的是卸载旧的VSIX安装版本。您应该使用Nuget软件包作为我的参考文章和您的链接。抱歉,我刚刚找到了您的链接。)因为这是一个误导性的帖子——3年多以来,一个人必须明确安装一个插件,而你似乎暗示了这样一个过程(我承认你并没有特别声明)。如果你认为这会让事情变得更糟,请随意回滚我的编辑:)不,我认为这些评论有助于澄清。感谢您的输入!情况不再是这样了,VS 2015的def,但我认为早期版本的def-实际上-是指卸载旧的VSIX安装版本的一个更好的链接。您应该使用Nuget包作为我的参考帖子和您的链接。对不起,我刚发现你的帖子有误导性-3年多以来,一个人必须明确安装一个插件,而你似乎暗示了这样一个过程(我承认你没有特别声明)。如果你认为这会让事情变得更糟,请随时回滚我的编辑:)不,我认为这些评论有助于澄清。谢谢你的输入!