我下载了开源项目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 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"]);
}
}
}
我如何从Visual Studio运行此测试?没有TestMethod和TestClass属性。上下文菜单中的标准执行不起作用。
如何在C#中使用多个数据集再次运行unittest是一种聪明的方法吗?
答案 0 :(得分:4)
据我所知,InlineData
是xUnit测试属性。
在Visual Studio(2012或更高版本)中工作的原因是xUnit测试适配器(即NuGet包xunit.runner.visualstudio
)在引用xUnit
NuGet包时连接到测试项目中已添加。
这是一个包含更多细节的链接:
答案 1 :(得分:0)
在xUnit v2中,xUnit的NuGet包中包含对NuGet(xunit.runner.visualstudio
)的引用,该引用使VS2012中的VS runner可以发现测试。有关概述,请参阅xUnit docs。