Как добавить покрытие юнит тестирования в SonarQube? Использование Azure-DevOps Pipeline - PullRequest
1 голос
/ 09 мая 2019

Я пытаюсь добавить покрытие кода в sonarqube, тесты включены и выполнены, но процент покрытия составляет 0.0.

В моем конвейере я получил «Подготовить анализ на SonarQube», и ключ проекта был хорошо настроен в дополнительных свойствах, которые я добавил «sonar.cs.vscoveragexml.reportsPaths = ** / *. Coverxml», но ничего не изменилось, я тоже пытался без это.

Другим шагом является «VsTest - testAssemblies», в котором я выбрал свой модульный тест и выбрал поле «Покрытие кода включено» и еще два шага с «Выполнить анализ кода» и «Публикация результата проверки качества». Эти два шага похожи на стандартные, я попытался увеличить время ожидания, но ничего не изменилось.

Выходной журнал в "VsTest - testAssemblies" был

Results File: X:\VSTSWork\52\s\TestResults\PRO_2019-05-09_20_07_48.trx

Attachments:
  X:\VSTSWork\52\s\TestResults\cdb1f30e-3958-4155-81e4-caa54693dfe9\PRO 2019-05-09 20_06_39.coverage

Total tests: 25. Passed: 25. Failed: 0. Skipped: 0.
Test Run Successful.

и в «Выполнить анализ кода»

20:08:05.303  Fetching code coverage report information from TFS...
20:08:05.308  Attempting to locate a test results (.trx) file...
20:08:05.364  Looking for TRX files in: X:\VSTSWork\52\TestResults, X:\VSTSWork\52\s\TestResults
20:08:05.366  The following test results files were found: X:\VSTSWork\52\s\TestResults\PRO_2019-05-09_20_07_48.trx
20:08:05.433  The following code coverage attachments were found from the trx files: X:\VSTSWork\52\s\TestResults\PRO_2019-05-09_20_07_48\In\PRO\PRO 2019-05-09 20_06_39.coverage
WARNING: File 'C:\Users\pro\.nuget\packages\runtime.win-x64.microsoft.netcore.dotnethostpolicy\2.1.0\runtimes\win-x64\native\hostpolicy.dll' is not located under the root directory 'X:\VSTSWork\52\s' and will not be analyzed.
WARNING: File 'C:\Users\pro\.nuget\packages\runtime.win-x64.microsoft.netcore.dotnethostresolver\2.1.0\runtimes\win-x64\native\hostfxr.dll' is not located under the root directory 'X:\VSTSWork\52\s' and will not be analyzed.
WARNING: File 'C:\Users\pro\.nuget\packages\xunit.runner.visualstudio\2.3.1\build\netcoreapp1.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll' is not located under the root directory 'X:\VSTSWork\52\s' and will not be analyzed.
WARNING: File 'C:\Users\pro\.nuget\packages\xunit.runner.visualstudio\2.3.1\build\netcoreapp1.0\xunit.runner.reporters.netcoreapp10.dll' is not located under the root directory 'X:\VSTSWork\52\s' and will not be analyzed.
WARNING: File 'C:\Users\pro\.nuget\packages\xunit.runner.visualstudio\2.3.1\build\netcoreapp1.0\xunit.runner.utility.netcoreapp10.dll' is not located under the root directory 'X:\VSTSWork\52\s' and will not be analyzed.
Calling the SonarQube Scanner...
.
..
...

INFO: Sensor C# Tests Coverage Report Import [csharp]
INFO: Parsing the Visual Studio coverage XML report X:\VSTSWork\52\.\s\TestResults\PRO_2019-05-09_20_07_48\In\PRO\PRO 2019-05-09 20_06_39.coveragexml
INFO: Adding this code coverage report to the cache for later reuse: X:\VSTSWork\52\.\s\TestResults\PRO_2019-05-09_20_07_48\In\PRO\PRO 2019-05-09 20_06_39.coveragexml
WARN: The Code Coverage report doesn't contain any coverage data for the included files. For troubleshooting hints, please refer to https://docs.sonarqube.org/x/CoBh
INFO: Sensor C# Tests Coverage Report Import [csharp] (done) | time=3701ms
INFO: Sensor C# Unit Test Results Import [csharp]
INFO: Parsing the Visual Studio Test Results file X:\VSTSWork\52\s\TestResults\PRO_2019-05-09_20_07_48.trx
INFO: Sensor C# Unit Test Results Import [csharp] (done) | time=64ms
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=363ms
INFO: Sensor CPD Block Indexer
INFO: Sensor CPD Block Indexer (done) | time=0ms
INFO: 49 files had no CPD blocks
INFO: Calculating CPD for 128 files
INFO: CPD calculation finished
INFO: Analysis report generated in 7191ms, dir size=810 KB
INFO: Analysis reports compressed in 1207ms, zip size=501 KB
INFO: Analysis report uploaded in 89ms

1 Ответ

0 голосов
/ 10 мая 2019

Наконец я нашел то, что пошло плохо,

Это решает для меня, когда я добавляю:

<DebugType>Full</DebugType>

В .csproj.Странно то, что другие проекты сообщали о некотором покрытии кода без этого свойства, поэтому я подумал, что оно мне не нужно.

Поэтому, если заявленное покрытие кажется ложным, попробуйте добавить это свойство в csproj.

Я нашел это в Публикация тестового покрытия нескольких проектов ядра .NET из DevOps Azure на сервере SonarQube

...