Команда dotnet test игнорирует создание файла с результатами NUnit.

У меня есть тестовый проект NUnit на .NET Core + NUnit.TestLogger (https://github.com/spekt/nunit.testlogger)
Я запускаю тесты на локальную машину или в teamcity через cmd:

dotnet test --logger:nunit

Я получаю ожидаемый результат:

Results File: D:\<PATH TO MY SOLUTION>\Source\Tests\TestResults\TestResults.xml

Но если я запускаю тесты в Teamcity через интерфейс командной строки .NET, файл TestResults.xml не создается.
Почему?

То есть, если я запускаю тест dotnet через командную строку, файл результата создается, а если через .NET CLI (тест dotnet) файл не создается

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

UPD: журнал сборки

[13:48:22][Step 3/5] dotnet.exe test MySolution.sln --logger:"nunit" @C:\teamcity-agents\BuildAgent-1\temp\agentTmp\730f901563fb4fd9b8d130e76c50cb20.rsp
[13:48:22][Step 3/5] test (5s)
[13:48:22][test] Starting: "C:\Program Files\dotnet\dotnet.exe" test MySolution.sln --logger:"nunit" @C:\teamcity-agents\BuildAgent-1\temp\agentTmp\730f901563fb4fd9b8d130e76c50cb20.rsp
[13:48:22][test] in directory: C:\teamcity-agents\BuildAgent-1\work\21fca25db91ea807
[13:48:24][test] Build started, please wait...
[13:48:24][test] Build completed.
[13:48:24][test] Test run for C:\teamcity-agents\BuildAgent-1\work\21fca25db91ea807\Source\Tests\bin\Debug\netcoreapp2.1\MySolution.dll(.NETCoreApp,Version=v2.1)
[13:48:24][test] Microsoft (R) Test Execution Command Line Tool Version 15.9.0
[13:48:24][test] Copyright (c) Microsoft Corporation.  All rights reserved.
[13:48:24][test] 
[13:48:24][test] Starting test execution, please wait...
[13:48:25][test] NUnit Adapter 3.13.0.0: Test execution started
[13:48:25][test] Running all tests in C:\teamcity-agents\BuildAgent-1\work\21fca25db91ea807\Source\Tests\bin\Debug\netcoreapp2.1\MySolution.dll
[13:48:25][test]    NUnit3TestExecutor converted 54 of 54 NUnit test cases
...
[13:48:27][test] Total tests: 52. Passed: 52. Failed: 0. Skipped: 0.
[13:48:27][test] Test Run Successful.
[13:48:27][test] Test execution time: 2,8774 Seconds
[13:48:27][test] 
[13:48:27][test] Build succeeded.
[13:48:27][test]     0 Warning(s)
[13:48:27][test]     0 Error(s)
[13:48:27][test] 
[13:48:27][test] Time Elapsed 00:00:03.96
[13:48:27][test] 
[13:48:27][test] Process exited with code 0

person tCode    schedule 08.05.2019    source источник
comment
Попробуйте с кавычками: --logger:"nunit"   -  person Peska    schedule 08.05.2019
comment
@Peska, пробовал, не решает проблему   -  person tCode    schedule 08.05.2019
comment
идей больше нет??   -  person tCode    schedule 13.05.2019


Ответы (2)


Я столкнулся с той же проблемой и решил ее, выбрав RunnerType в качестве командной строки вместо точки net cli. Вам нужно будет настроить его следующим образом:

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

person p4ulinux    schedule 20.09.2019

Я нашел решения. Прежде всего, ответ @p4ulinux работает, но в этом случае вы пропустите интеграцию с TeamCity, поэтому тестовые случаи не появятся на вкладке «Тесты». Итак, мое решение состоит в том, чтобы добавить следующие строки в файл .runsettings:

<LoggerRunSettings>
<Loggers>
  <Logger friendlyName="nunit" enabled="True">
    <Configuration>
      <LogFileName>test-result.xml</LogFileName>
    </Configuration>
  </Logger>
</Loggers>

А затем укажите, где ваши .runsettins находятся в настройке шага, в разделе «Файл настроек»:

Раздел файла настроек

Файл результатов появится в папке TestResults рядом с вашим файлом .csproj.

Это отлично работает для меня! Надеюсь, это будет полезно для всех остальных!

person Dmitrij Abashin    schedule 16.02.2021