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

Sim*_*n K 7 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.Project.dll" />
</Target>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我希望能够指定只应执行某些类中的测试.这可能吗?

Jos*_*her 9

您可以为xunit任务切换Exec任务并运行XUnit控制台运行器xunit.console.clr4.exe.这有命令行选项,用于指定要运行的"特征".这些是可以使用以下命令分配给测试的名称值对TraitAttribute:

    [Trait("TraitName", "TraitValue")]
    public void MyTest(){ /*..*/ }
Run Code Online (Sandbox Code Playgroud)

从控制台运行的使用测试:

Valid /trait "name=value" : only run tests with matching name/value traits : if specified more than once, acts as an OR operation /-trait "name=value" : do not run tests with matching name/value traits : if specified more than once, acts as an AND operation

  • 随着V2的发布,@ aguafrommars更加容易:`xunit.console.exe -class'Namespace.ClassName'`. (5认同)
  • 您还可以使用带有完整方法名称的-method参数,例如:`xunit.console.clr4.exe -method Namespace.ClassName.MethodName` (2认同)