Msbuild 如何让xUnit runner只在特定类中执行测试?
在我的csproj文件中,我定义了一个测试目标,用于在指定的DLL中执行xunit测试: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
<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'
。