C# ASP.Net堆栈中的InlineData属性如何工作?

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

出于好奇,我下载了开源项目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"]);
        }
    }
}
如何从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 v2中,xUnit的NuGet包包含对NuGet(
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年多以来,一个人必须明确安装一个插件,而你似乎暗示了这样一个过程(我承认你没有特别声明)。如果你认为这会让事情变得更糟,请随时回滚我的编辑:)不,我认为这些评论有助于澄清。谢谢你的输入!