Тестирование покрытия 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 являются

с # = 4,1Общий охват = 1,1

Ответы на вопрос(1)

Ваш ответ на вопрос