Формат cobertura-coverage.xml не поддерживается SonarQube для модульных тестов, написанных на javascript.

  • Используя istanbul и cobertura, мне удалось получить отчет о покрытии для моего модульного теста, написанного на Javascript (Node js) в формате XML (cobertura-coverage.xml). Но созданный xml не поддерживает формат, требуемый SonarQube.
  • Я просмотрел множество решений на Stackoverflow, но не смог найти ни одного, соответствующего моим критериям.

Ниже представлен контент, сгенерированный в файле cobertura-coverage.xml -

<?xml version="1.0" ?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage lines-valid="5"  lines-covered="5"  line-rate="1"  branches-valid="0"  branches-covered="0"  branch-rate="1"  timestamp="1542872388848" complexity="0" version="0.1">
<sources>
  <source>/home/sreenesh/Sreenesh/Other_Projects/test/tests</source>
</sources>
<packages>
  <package name="tests"  line-rate="1"  branch-rate="1" >
  <classes>
     <class name="test1.js"  filename="test1.js"  line-rate="1"  branch-rate="1" >
     <methods>
        <method name="(anonymous_1)"  hits="1"  signature="()V" >
            <lines><line number="4"  hits="1" /></lines>
        </method>
     </methods>
     <lines>
        <line number="1"  hits="1"  branch="false" />
        <line number="2"  hits="1"  branch="false" />
        <line number="4"  hits="1"  branch="false" />
        <line number="5"  hits="1"  branch="false" />
        <line number="6"  hits="1"  branch="false" />
    </lines>
    </class>
  </classes>
  </package>

В вышеприведенном xml версия для сгенерированного покрытия равна «0.1», и этот формат не подходит для его импорта для покрытия в SonarQube.

Сонарный анализ показывает следующую ошибку -

ERROR: Error during SonarQube Scanner execution
ERROR: Error during parsing of the generic coverage report '/home/sreenesh/Sreenesh/Other_Projects/test/tests/cobertura-coverage.xml'. Look at SonarQube documentation to know the expected XML format.
ERROR: Caused by: Unknown XML node, expected "file" but got "sources" at line 4

Пожалуйста, помогите мне с правильными шагами для создания XML, соответствующего формату здесь. Спасибо.


person Sreenesh Kini    schedule 22.11.2018    source источник


Ответы (1)


Это связано с тем, что Sonarqube ожидает формат файла LCOV, а вы предоставляете файл отчета Cobertura.

Если вы хотите передать Sonar файл такого типа, вам необходимо установить плагин Covertura и предоставить файл с параметром: sonar.cobertura.reportPath=...

В противном случае выберите файл LCOV, который изначально поддерживается Sonarqube.

person Alucara    schedule 04.06.2019