Ошибки Sonar Runner во время обработки файла .coveragexml, созданного из MSTest Visual Studio

Я пытаюсь обработать мой файл .coveragexml (после преобразования файла .coverage), который я получаю после использования MSTest из командной строки, но Sonar Runner продолжает давать сбой, когда пытается проанализировать файл. Ошибки состоят из ошибок синтаксического анализа, таких как неожиданное '?' а также невозможность найти тег в файле.

Я попробовал несколько способов получить файл .coveragexml: с помощью команд «vsinstr -coverage ...» и «start vsperfmon -coverage ...» (затем запустив MSTest) из командной строки, изменив файл .testrunconfig и указав, какие библиотеки я хочу получить покрытие, и попытался с помощью "CodeCoverage.exe собирать ...". Первые два дали мне успех при получении данных о покрытии кода, но у меня были проблемы с получением "CodeCoverage.exe collect ..." для сбора результатов. Несмотря на то, что я могу получить результаты покрытия кода кода из первых двух, созданный файл .coveragexml, похоже, не в том формате, который принимает SonarQube, даже несмотря на то, что они указывают на своей веб-странице плагина VB.NET, что они поддерживают MSTest и VSTest XML-файлы покрытия кода. Я попытался использовать VSTest и могу получить мои файлы .coveragexml для принятия Sonarqube без каких-либо ошибок просто отлично. Проблема в том, что компания, для которой я стажируюсь, использует MSTest для запуска всех своих модульных тестов, поэтому мне нужно получить данные .coveragexml от использования MSTest.

Еще я заметил, что когда я пытаюсь экспортировать файл .coverage в виде .coveragexml в Visual Studio (как для MSTest, так и для VSTest), он создает формат .coveragexml, который Sonarqube не принимает (он просто выдает ошибку из-за ошибки я упоминал выше). Когда я использую команду «CodeCoverage.exe analysis ...» для преобразования файла .coverage из VSTest, он создает формат .coveragexml, который Sonarqube принимает, поскольку я не получаю ошибок и вижу результаты покрытия кода на панели инструментов. Теперь, когда я пытаюсь использовать команду «CodeCoverage.exe analysis ...» для преобразования файла .coverage из MSTest, ничего не происходит. Файл .coveragexml не создается, и никаких ошибок или какой-либо обратной связи не предоставляется. Я также попытался написать метод C # для преобразования файла .coverage в файл .coveragexml с помощью Microsoft.VisualStudio.Coverage.Analysis. Но он создает файл того же формата .coveragexml, как если бы я экспортировал его из Visual Studio.

Другие вещи, которые может быть полезно знать:

Я выполняю анализ кода VB.NET.Я использую версию 2.2 плагина VB.NET от Sonarqube.Я использую версию 4.3.2 Sonarqube и версию 2.4 SonarQube Runner.Я использую Visual Studio 2013 Premium.

(Ошибка SonarQube) Формат файла .coveragexml после его экспорта из Visual Studio выглядит следующим образом:

<CoverageDSPriv>
<xs:schema ...>
  ...
</xs:schema>
<Module>
  <ModuleName>...</ModuleName>
  <ImageSize>...</ImageSize>
  ...
  <NameSpaceTable>
    <BlocksCovered>...</BlocksCovered>
    ...

(SonarQube принимает) Формат файла .coveragexml после использования «CodeCoverage.exe analysis ...» (работает только с файлом VSTest .coverage)

<?xml version="1.0" encoding="UTF-8" ?>
<results>
  <modules>
    <module name="..." path="..." id="..." block_coverage="..." line_coverage="..."  blocks_covered="..." ... >
      <functions>
        <function id="..." token="..." name="..." type_name="..." block_coverage="..." >
        ...

Похоже, что есть две совершенно разные схемы для этих данных, и SonarQube принимает только одну из них, так ли это? Есть ли другой способ преобразовать данные .coverage в тот, который принимает SonarQube?

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

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