Разница между vstest.console.exe и тестовыми командами dotnet

Есть ли разница между командами vstest.console.exe и dotnet test для запуска модульного теста из терминала? Например, когда вы должны использовать один над другим. Предназначен ли «vstest.console.exe» только для .Net framework, а «dotnet test» — для основных проектов dotnet? Я не могу найти конкретного ответа на этот вопрос в Google или в документации Microsoft.

Вопрос в приведенной ниже ссылке близок, но ответ не учитывает разницу. Я хочу запустить свой проект C# на сервере сборки со сценарием, и мне было интересно, какой вариант лучше всего использовать.

тестирование в .net framework


person cmoe    schedule 16.08.2019    source источник
comment
Несколько экспериментов могут показать, что оба работают, и поэтому нет необходимости иметь документацию о том, что не поддерживается.   -  person Lex Li    schedule 16.08.2019
comment
Вы говорите, что их можно использовать независимо от фреймворков? Будь то .net core или .net framework?   -  person cmoe    schedule 16.08.2019


Ответы (2)


Да, документ https://docs.microsoft.com/pt-br/dotnet/core/testing/selective-unit-tests?pivots=mstest описывает это.

По сути, при использовании vstestconsole вам нужно использовать "--testcasefilter" вместо "--filter".

person Gu Queiroz    schedule 22.05.2020
comment
Между vstest и mstest есть разница: первый — это средство запуска тестов, а второй — тестовая среда. Оба могут использоваться независимо. - person Sevenate; 19.11.2020

Я полагаю, что vstest.console.exe раньше запускал только MSTests, в то время как dotnet test был разработан, чтобы быть более независимым от тестовой среды и поддерживать другие фреймворки, такие как NUnit и xUnit, с возможностью их запуска на разных платформах (т. е. не только на Windows, как это было с vstest.console.exe) .

Согласно официальной документации для dotnet vstest:

Команда dotnet-vstest запускает приложение командной строки VSTest.Console для запуска автоматических модульных тестов.

MS также недавно добавила важное примечание на эту страницу, в котором говорится, что:

Команда dotnet vstest заменена командой dotnet test, которую теперь можно использовать для запуска сборок. См. тестирование dotnet.

Так что, похоже, dotnet test — это то, что нужно :)

person Sevenate    schedule 19.11.2020