Как создать отчет о покрытии кода Cobertura с помощью Maven от Hudson

В моем проекте мне нужно создать отчет Cobertura Code Coverage от Hudson, используя сборку maven.
В Hudson я добавил плагин Cobertura Code Coverage.
Мне нужны полные шаги модификации pom.xml.


person stackoverflowsk    schedule 05.01.2010    source источник
comment
Остерегайтесь несовместимости с Java 7! Возможное [решение показано здесь] [1]. [1]: stackoverflow.com/questions/7010665/   -  person user1050755    schedule 18.03.2013


Ответы (4)


Вы пробовали добавить это в свой pom.xml в разделе reporting?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <configuration>
       <formats>
           <format>html</format>
           <format>xml</format>
       </formats>
    </configuration>
</plugin>

Полные шаги по настройке можно найти здесь.

person ewernli    schedule 05.01.2010
comment
Я добавил конфигурацию в раздел «Выполнение cobertura только из hudson с использованием профилей», доступный по адресу «wiki.hudson-ci.org/display/HUDSON/Cobertura+Plugin 'в моем pom.xml Также добавлен configuraiton в теге' Reporting 'для cobertura-maven-plugin Но при выполнении сборки из hudson - я получение следующего исключения Пропуск отчета о покрытии Cobertura, поскольку сборка не была НЕСТАБИЛЬНОЙ или лучше ... Завершено: ОТКАЗ Я настроил плагин Опубликовать отчет о покрытии Cobertura в Hudson Я пропустил какие-либо шаги во время настройки? - person stackoverflowsk; 07.01.2010
comment
проверьте свои журналы, он должен показать сообщения об ошибках. также может помочь запуск mvn site cobertura: cobertura на местной кассе. Также в качестве примечания для меня было достаточно просто запустить cobertura: cobertura в качестве цели, никаких изменений pom не потребовалось (возможно, потому, что pom верхнего уровня уже включал его ...) - person rogerdpack; 31.12.2010

Хадсону нужны вы, чтобы сгенерировать coverage.xml файл. Чтобы сделать это, не меняя pom.xml, вы можете использовать:

mvn cobertura:cobertura -Dcobertura.report.format=xml
person Andrew McKnight    schedule 20.09.2013
comment
В моей системе раздел плагина <configuration> не соблюдается .. Однако он работает, когда я указываю вышеупомянутый параметр -Dcobertura.report.format в строке целей. Спасибо amcknight - person matthaeus; 24.07.2014
comment
Есть ли способ генерировать отчеты Cobertura по команде mvn clean install вместо mvn cobertura:cobertura. Когда я изменил executions- phase на test и goal на cobertura, он работает, но он запускает тестовые примеры дважды, есть идеи по этому поводу? - person PRATHAP S; 07.09.2017
comment
@PRATHAPS, я знаю, что это очень поздний комментарий, но вы придумали, как это исправить? И ваше решение, и ответы Йохана Норена дважды запускают тестовые примеры. Удалось ли вам запустить тестовые примеры только один раз и сгенерировать отчет cobertura из этого единственного тестового прогона? - person Amudhan; 05.04.2018
comment
@Amudhan, как я понял, он всегда будет запускаться дважды. Но это не имеет значения, поскольку это не влияет на производительность, поскольку тесты будут запускаться только перед сборкой. Позже начал использовать Жакако - person PRATHAP S; 09.04.2018
comment
@PRATHAPS, большое спасибо за ответ! Меня беспокоило только то, что мы запускаем полную сборку перед объединением кода в репо. Разработчики сделают (должны) это сделать до слияния. Если тесты запускаются дважды, это приведет к потере времени разработчиков. План заключался не только в создании отчета о покрытии в системах сборки, но и в том, чтобы проверить и вывести сборку из строя, если достаточного покрытия нет. Итак, из вашего ответа и своего опыта я могу понять, что он всегда будет запускаться дважды, если мы хотим проверить. Кстати, джакоко не запускается дважды? Может ли он обеспечить создание отчетов и проверку за один тестовый прогон? Заранее спасибо! - person Amudhan; 09.04.2018
comment
@Amudhan Да, Джакоко не запускает тесты дважды. Мы можем добиться отчетности и всех других функций, которые есть в Cobertura. - person PRATHAP S; 09.04.2018

Чтобы запустить Cobertura на этапе создания пакета, выполните

 <plugin>  
            <groupId>org.codehaus.mojo</groupId>  
            <artifactId>cobertura-maven-plugin</artifactId>  
            <version>2.5.2</version>  
            <configuration>  
                <formats>  
                    <format>xml</format>  
                </formats>  
            </configuration>  
            <executions>  
                <execution>  
                    <phase>package</phase>  
                    <goals>  
                        <goal>cobertura</goal>  
                    </goals>  
                </execution>  
            </executions>  
   </plugin>         

Вот пример пом

http://macgyverdev.blogspot.com/2011/04/development-environment-for-google-app.html

А вот как интегрироваться в Hudson http://macgyverdev.blogspot.com/2011/04/hudson-continous-integration-for-google.html

person Johan Norén    schedule 22.04.2011
comment
В этой конфигурации тестовые примеры запускаются дважды. Есть идеи, как это исправить, чтобы тесты запускались только один раз, а отчет cobertura создавался с использованием этого? - person Amudhan; 05.04.2018

Cobertura на самом деле не работает с Hudson.

У меня есть проект, в котором выполняется командная строка: mvn clean package

Создает отчет о покрытии. Создает точный отчет о покрытии со средним охватом около 78% линии и 74% ответвления.

Выполнение тех же целей на сервере Hudson приводит к отчету о покрытии, показывающему 0% 0%.

К сожалению, сайт Jira для этого плагина, похоже, не позволяет кому-либо публиковать сообщения о проблемах, поэтому команда пока не сообщает об этой проблеме.

person SteveO    schedule 30.01.2012