Тестирование покрытия SonarQube с помощью MsTest
Я пытался получитьSonarQube
работа с простым приложением dot net. У меня был некоторый успех в настройке и запуске, но покрытие кода не работает.
Похоже, что многие другие люди сталкивались с этой проблемой, когда SonarQube прекратил поддержку многих инструментов покрытия «перейти к», таких какDotCover and OpenCover
с помощьюGallio
Примеры, которым я следовал:
Ошибки Sonar Runner во время обработки файла .coveragexml, созданного из MSTest Visual Studio
Файл runsettings VS2013 CodeCoverage.exe никогда не анализирует
Я попробовал несколько инструментов командной строки VS, чтобы сгенерировать.coverage
файл
vstest.console.exe .\UnitTestProject1\bin\Debug\UnitTestProject1.dll /EnableCodeCoverage
а также
CodeCoverage.exe collect /output:DynamicCodeCoverage.coverage .\UnitTestProject1\bin\Debug\UnitTestProject1.dll
И написал какой-то код, чтобы преобразовать его в.coveragexml
файл изВот
Чтобы получить следующий XML:
<?xml version="1.0" standalone="yes"?>
<CoverageDSPriv>
<Module>
<ModuleName>unittestproject1.dll</ModuleName>
<ImageSize>32768</ImageSize>
<ImageLinkTime>0</ImageLinkTime>
<LinesCovered>12</LinesCovered>
<LinesPartiallyCovered>0</LinesPartiallyCovered>
<LinesNotCovered>0</LinesNotCovered>
<BlocksCovered>9</BlocksCovered>
<BlocksNotCovered>0</BlocksNotCovered>
<NamespaceTable>
<BlocksCovered>9</BlocksCovered>
<BlocksNotCovered>0</BlocksNotCovered>
<LinesCovered>12</LinesCovered>
<LinesNotCovered>0</LinesNotCovered>
И даже используемая таблица стилей XSLT обеспечивает тот, который может использоваться бегуном SonarQube
<?xml version="1.0" encoding="utf-8"?>
<results>
<modules>
<module name="unittestproject1.dll" path="unittestproject1.dll" block_coverage="100" line_coverage="100" blocks_covered="9" blocks_not_covered="0" lines_covered="12" lines_partially_covered="0" lines_not_covered="0">
<functions>
<function name="Setup" type_name="UnitTest1" block_coverage="100" line_coverage="100" blocks_covered="1" blocks_not_covered="0" lines_covered="2" lines_partially_covered="0" lines_not_covered="0">
<ranges>
<range source_id="1" covered="yes" start_line="13" start_column="9" end_line="13" end_column="10" />
<range source_id="1" covered="yes" start_line="15" start_column="9" end_line="15" end_column="10" />
</ranges>
</function>
когда я запускаю сонар
MSBuild.SonarQube.Runner.exe НачалоMSBuildMSBuild.SonarQube.Runner.exe конецЯ получаю сообщения об ошибках типа:unknown XML Node
Ожидайтепокрытие но получилРезультаты
Это потому, что ему не нравится структура моего XML, но я не уверен, что ожидается и сколько работы мне нужно сделать над файлом покрытия, чтобы преобразовать его в формат, который нравится Sonar
Надеюсь, я пошел по неверному пути, и есть простой способ интегрировать VS Coverage илиcoveragexml
файлы в сонар без особой работы
Дополнительная информация о моемSonar plugins
являются