Msbuild 如何让xUnit runner只在特定类中执行测试?

Msbuild 如何让xUnit runner只在特定类中执行测试?,msbuild,xunit,xunit.net,Msbuild,Xunit,Xunit.net,在我的csproj文件中,我定义了一个测试目标,用于在指定的DLL中执行xunit测试: <UsingTask AssemblyFile="..\packages\xunit.1.9.2\lib\net20\xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit" /> <Target Name="Test"> <xunit Assembly="bin\Debug\My.Pro

在我的csproj文件中,我定义了一个测试目标,用于在指定的DLL中执行xunit测试:

<UsingTask AssemblyFile="..\packages\xunit.1.9.2\lib\net20\xunit.runner.msbuild.dll"     TaskName="Xunit.Runner.MSBuild.xunit" />
  <Target Name="Test">
    <xunit Assembly="bin\Debug\My.Project.dll" />
</Target>


这很好,但是我希望能够指定只执行某些类中的测试。这可能吗?

您可以将
xunit
任务切换到
Exec
任务,然后运行xunit控制台运行程序
xunit.console.clr4.exe
。这有用于指定要运行的“traits”的命令行选项。这些是可以使用
TraitAttribute
分配给测试的名称-值对:

    [Trait("TraitName", "TraitValue")]
    public void MyTest(){ /*..*/ }
从console runner的使用测试中:


有效的
/trait“name=value”:仅使用匹配的name/value特性运行测试
:如果多次指定,则充当OR操作
/-特征“name=value”:不要使用匹配的名称/值特征运行测试
:如果多次指定,则充当AND操作

您还可以使用带有完整方法名的-method参数,例如:
xunit.console.clr4.exe-methodnamespace.ClassName.MethodName
@aguafrommars,随着V2的发布,使用起来更加简单:
xunit.console.exe-class'Namespace.ClassName'