Как просмотреть отчет о покрытии HTML с помощью плагина Cobertura Maven?

#java #maven #code-coverage #cobertura

#java #maven #покрытие кода #cobertura

Вопрос:

Я хочу сгенерировать и просмотреть отчет о покрытии для проекта Java-Maven.

Я добавил следующее в pom.xml :

 <reporting>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <formats>
          <format>html</format>
        </formats>
      </configuration>
    </plugin>
  </plugins>
</reporting>
  

Когда я запускаю, mvn cobertura:cobertura он успешно выполняется и сообщает консоли, что Cobertura Report generation was successful но я не могу найти отчет.

Если я cd в target/cobertura нахожу файл с именем cobertura.ser , но я понятия не имею, что с ним делать.

Редактировать: После повторного изучения документов, благодаря Andreas_D, я добавил <reporting> тег, но получаю тот же результат.

Комментарии:

1. Используйте jacoco — это намного лучше, чем cobertura technikes.com/… Вы также получаете отчет в 3 форматах, а именно HTML, CSV и XML

2. @sakshamagarwal Ну, я задал этот вопрос в 2011 году, для протокола. В 2017 году я рад, что не имею дела с ерундой Java / Maven / XML.

3. Может быть, это поможет другим разработчикам. Надеюсь решить любую вашу ошибку в будущем. Спасибо

Ответ №1:

Это в разделе сборки:

 <build>
    ...
    <plugins>
        ...    
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.5.2</version>
        </plugin>
        ...
    </plugins>
    ...
</build>
  

И затем это в разделе отчетов:

 <reporting>
    ...
    <plugins>
        ... 
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>
                <check></check>
                <formats>
                    <format>html</format>
                    <format>xml</format>
                </formats>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</reporting>
  

Выполнить mvn cobertura:cobertura

Затем найдите index.html внутри целевой папки /site/cobertura/.

Комментарии:

1. Надеюсь, это кому-то поможет. Я не возвращаюсь к этому старому вопросу.

2. Я думаю, что <plugin> должен быть заключен в элемент <plugins> . Если да, предложите изменить ответ, поскольку он не работает

3. Да, Питер.мюррей.rust, вы правы, и у меня создалось впечатление, что разработчики не будут просто копировать и вставлять все целиком, а разместят необходимый код в нужном месте. Скорректировал ответ.

Ответ №2:

Взгляните на документацию плагина, там есть пример. Уверен, что вам нужно добавить <reporting> элемент, чтобы фактически создать отчет.

Комментарии:

1. Хороший улов, но я все равно получаю тот же результат. Я обновил вопрос.

2. @FarmBoy — вам нужно добавить плагин cobertura в <build> раздел (для выполнения cobertura) и в <reporting> раздел (для создания отчета. И вам, возможно, придется добавить site цель ( mvn cobertura:cobertura site ) для фактического создания (html) сайта

3. Хм, site цель создает проблему зависимости. Он не может найти org.apache.maven.doxia:doxia-core:jar:1.0-alpha-11 . В нашем репозитории есть alpha-10 . Зачем это вообще нужно?

4. @FarmBoy — вам придется решить проблемы с зависимостями. «Запустите» pom на компьютере, подключенном к Интернету, затем импортируйте новый локальный репозиторий с этого компьютера в свой репозиторий (похоже, ваш отключен от Интернета)

5. Я вынужден просматривать внутренний репозиторий моей компании, и я понимаю, что это моя проблема. Я просто сбит с толку, почему добавление site цели приведет к созданию новых зависимостей.

Ответ №3:

Я только что попробовал здесь, в моем проекте, вы также можете сделать следующее:

а) запустите mvn cobertura:cobertura
б) он должен сгенерировать папку с именем ‘site’
в) вы можете открыть index.html (внутри папки site / sobertura) в любом браузере и проверить результаты покрытия.

Ответ №4:

Если ничего не работает — попробуйте это http://technikes.com/how-to-generate-code-coverage-report-in-java-jacoco-graphical-report / вы можете получить отчет о покрытии кода в формате html и xml

Это удивительно, поскольку я публикую свой отчет в html и xml

Комментарии:

1. Этот вопрос слишком устарел для меня, чтобы у меня был шанс воспроизвести проблему, поэтому я не буду голосовать за новые ответы.

2. Но этот ответ не для увеличения моего голоса. Может быть, это поможет другим разработчикам. Надеюсь решить любую вашу ошибку в будущем. Спасибо

3. Этот ответ на самом деле не затрагивает вопрос о cobertura, он предоставляет способ сделать это с помощью другого плагина.