2017-02-16 24 views
6

У меня есть проект тестирования .NET Core, который использует Xunit 2.2. Некоторые из моих тестов отмечены чертами.Как фильтровать тесты xunit по признаку с помощью теста «dotnet»?

[Fact] 
[Trait("Color", "Blue")] 
public void TestBlue() 
{ 
} 

Что такое правильный синтаксис командной строки для «теста Dotnet» только тесты прогона, где черта Цвет == синий?

Я использую .NET Core CLI 1.0.0-rc4, который использует csproj, а не project.json.

Я пытаюсь использовать dotnet test --filter $something, но все, что я использую для $ что-то, я вижу эту ошибку:

Error: [xUnit.net 00:00:00.7800155] E2ETests: Exception filtering tests: No tests matched the filter because it contains one or more properties that are not valid ($something). Specify filter expression containing valid properties (DisplayName, FullyQualifiedName) and try again.

ответ

8

Я нашел ответ:

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

+0

Я все еще получаю ошибку about '(DisplayName, FullyQualifiedName)' любые указатели на то, почему это было нарушено (с использованием cli 1.0.3) – Damian

+0

N Конечно, потребуется больше деталей. В качестве обходного пути вы можете попробовать использовать «dotnet-xunit». См http://xunit.github.io/docs/getting-started-dotnet-core.html – natemcmaster

+2

следующие работы: тест 'DotNet --filter TraitName = TraitValue' Однако только до тех пор, пока некоторые тесты, украшенные '[Trait (« TraitName »,« somevalue »)]' в тестовой сборке ... если нет, тогда тесты не запускаются :-(Возможно, ошибка в тесте dotnet? –

0

В 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"