dotnet test не создает папку с результатами теста

В рамках процесса сборки ASP.NET Core 2.0 я добавил команду dotnet test, которую я добавил как командный файл Windows.

Вот моя команда.

dotnet test "MyProject.csproj" --no-restore --results-directory "MyProject\TestResults" --verbosity minimal

А вот результат при запуске из командной строки.

введите описание изображения здесь

Таким образом, все работает правильно, но результаты тестов / выходные данные тестов не создаются.


person DomBurf    schedule 20.03.2018    source источник
comment
Можно ли создать папку с результатами теста при запуске теста dotnet непосредственно на машине с агентом? Я имею в виду запускать в командной строке локально.   -  person Andy Li-MSFT    schedule 21.03.2018
comment
Приведенный выше снимок экрана был сделан с сервера сборки. Вы имеете в виду попробовать это на моей локальной машине разработчика?   -  person DomBurf    schedule 21.03.2018
comment
Да, вы можете попробовать на своем локальном компьютере разработчика, чтобы проверить, может ли быть создана папка с результатами теста. Кроме того, вы можете попробовать указать регистратор результатов тестирования (-l|--logger <LoggerUri/FriendlyName>), чтобы проверить, работает ли он.   -  person Andy Li-MSFT    schedule 21.03.2018


Ответы (2)


Чтобы вывести результаты теста dotnet test, вы можете попробовать передать -xml /some/path/out.xml или использовать параметр work, например: dotnet test --work:"mypath/myresult.xml". См. Подробности в темах ниже:


Кроме того, обычно вам нужно указать аргумент -l|--logger <LoggerUri/FriendlyName>, который указывает регистратор результатов теста.

e.g.:

dotnet test "myproject.csproj" --logger "trx;LogFileName=path\to\tests\folder\results.trx" or dotnet test "myproject.csproj" -l:"trx;LogFileName=path\to\tests\folder\results.trx"

Чтобы сделать сгенерированные trx файлы доступными в качестве результатов тестирования в VSTS / TFS, вы можете использовать задачу «Опубликовать результаты теста»:

введите описание изображения здесь

person Andy Li-MSFT    schedule 21.03.2018
comment
dotnet test не распознает параметры --xml или --work. Предположительно, чтобы опубликовать результаты моих тестов, мне нужно сначала выполнить модульные тесты, поэтому я пытаюсь заставить работать dotnet test. - person DomBurf; 21.03.2018
comment
После первой ссылки я наткнулся на следующий синтаксис, который работает. dotnet test myproject.csproj --logger trx; LogFileName = путь \ к \ tests \ folder \ results.trx - person DomBurf; 21.03.2018
comment
Не беспокойся, мой друг. Я принял это как ответ, так как это мне очень помогло. Спасибо :) - person DomBurf; 21.03.2018
comment
Параметр --logger следует заключать в кавычки. - person Mike; 08.01.2019

Для вывода результатов теста с использованием опции dotnet test --results-directory необходимо также установить --logger.

Параметры -xml и --work больше не работают, поскольку они не являются частью параметров, предоставляемых тестовым интерфейсом командной строки. Я помню, что раньше использовал -xml, и это работало, но теперь это не так.

Вы можете увидеть все параметры для CLI .NET Core 2.x здесь

Чтобы опубликовать результаты тестов в определенной папке, вы должны использовать следующую команду:

dotnet test --logger "trx;logfilename=mytests.trx" --results-directory ./somefolder/subfolder

Or

dotnet test --logger "trx;LogFileName=./somefolder/subfolder/mytests.trx"

Файл trx - это файл XML, поэтому вы можете назвать его mytests.xml вместо mytests.trx.

Если вы используете VSTS, вы можете опубликовать свои тесты для отображения на странице сборки, используя команду выше в задаче «.NET Core» для теста и задаче «Опубликовать результат теста».

Задача .NET Core объясняет, где публикуются результаты, как показано на скриншоте ниже:

введите описание изображения здесь

Когда все будет готово, ваша страница сборки будет выглядеть так:

введите описание изображения здесь

person Alexz    schedule 03.05.2018
comment
Я использую SonarQube, и, установив регистратор (на nunit, поскольку я использую NUnit3 для модульного тестирования), имя файла по умолчанию TestResults.xml было правильно выбрано и обработано SonarQube. ПРИМЕЧАНИЕ. Мне нужно было установить пакет NuGet NUnitXML.TestLogger в моем проекте «Тесты», чтобы активировать его. - person From Orbonia; 18.06.2019