我有一个使用Xunit 2.2的.NET Core测试项目。我的一些测试标有特征。
[Fact]
[Trait("Color", "Blue")]
public void TestBlue()
{
}
“dotnet test”的正确命令行语法是什么,只运行特征Color == Blue的测试?
我使用的是使用csproj的.NET Core CLI 1.0.0-rc4,而不是project.json。
我正在尝试使用dotnet test --filter $something
,但无论我使用什么东西,我都会看到这个错误:
错误:[xUnit.net 00:00:00.7800155] E2ETests:异常过滤测试:没有测试与过滤器匹配,因为它包含一个或多个无效的属性($ something)。指定包含有效属性的过滤器表达式(DisplayName,FullyQualifiedName),然后重试。
答案 0 :(得分:22)
我找到了答案:
dotnet test --filter TraitName=TraitValue
或者,您可以按而非过滤具有特征值
dotnet test --filter TraitName!=TraitValue
在上面的例子中,这意味着我可以运行:
dotnet test --filter Color=Blue
此处有更多文档:https://github.com/Microsoft/vstest-docs/blob/master/docs/filter.md
答案 1 :(得分:2)
在csproj
中<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="xunit" Version="2.3.0" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
</ItemGroup>
命令行
dotnet xunit -trait "Color=Blue"