2016-06-10 4 views
16

У меня есть большой набор тестов в проекте .NET Core. Я могу использовать окно Test Explorer, чтобы выбрать несколько тестов для запуска.Как выполнить определенные тесты с помощью теста dotnet?

Я также могу запустить комплект в командной строке с dotnet test. Есть ли способ запустить только один (или несколько) тестов в командной строке?

ответ

20

С Dotnet версии 1.0.0, вы должны использовать --filter вариант:

Вы можете фильтровать по DisplayName, FullyQualifiedName и черты характера.

Ex:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1" 

Кроме того, эти операторы могут! =, = И ~ (содержит).

Больше информации здесь: docs

+0

Я пробовал это, и это решение работает также для версии 1.1 и метода [Теория]. Переключатели '-method' и' -class' больше недоступны в версии 1.1, и вы получите сообщение об ошибке: 'MSBUILD: ошибка MSB1001: Unkown switch. Переключатель: -method' – Teknikaali

+1

Да, я только что подтвердил это. '-method' больше не работает, но' -filter' делает. Спасибо @andrecarlucci! –

+0

Начиная с версии 15.1 выражение может быть ключевым словом, которое будет сопоставлено с полными именами. Как указано в документации, «тест« dotnet »- фильтр xyz - тот же, что и« dotnet test --filter FullyQualifiedName ~ xyz' », что очень удобно! – vtellier

11

Этот ответ устарел ...

Это XUnit конкретно: dotnet test -method <test name>

<test name> является полным именем методы (имена + класс + название методы)

Если тесты является Theory , AFAIK, нет способа указать, какую теорию следует выполнять. Он будет запускать все из них.

+0

Спасибо! Является ли это документированным где угодно? –

+0

Я думаю, что это должно быть где-то в документации xunit https://xunit.github.io/#documentation –

+0

Это может быть что-то, что было изменено за последние пару недель; Теперь вы можете протестировать теорию таким же образом. – kiml42

4

Поскольку этот вопрос помечен XUnit, команда для DotNet команды XUnit CLI выглядит следующим образом:

dotnet xunit -method FullyQualifiedName 
Смежные вопросы