2014-01-14 5 views
1

Я новичок в мире java. Наша команда использует Maven для создания всего в одном файле .war. Я ищу инструменты для инструментальных файлов .war, чтобы включить покрытие кода. Идея состоит в том, чтобы вручную запустить файл .war, а затем запустить тест.Maven code coverage

Я смотрел пару инструментов, но не получал точно, что я ищу, например. Эмма, шут, кобертура и т. Д. Ищете простые инструкции.

+0

Maven очень хороший инструмент для сборки. Есть ли какая-то конкретная причина для поиска нового инструмента? .. –

+0

Я хочу знать, как измерить его для построения кода, используя Maven. – user3193257

+0

Инструмент .war файл ??? Обычно вы запускаете тест maven в своем проекте, если 100% -ный проход проходит, то приступите к пакету mvn, который будет строить ваш военный файл. Покрытие кода соответствует уровню тестирования maven. Вы можете хранить отчеты html, интегрировать статистику и только перейти к шагу пакета, если говорят, что строки покрыты> 90%. Я использую cobertura в своих проектах Grails, Emma на моих проектах Java/groovy. Очень просто установить/использовать. Не изобретайте колесо! – shuttsy

ответ

0

Cobertura поддержал бы это. См. Ответ на этот вопрос.

Java: measure code coverage for remote scripting tests

Если вы хотите сделать это в развитии, а не на сервере сборки, вы можете дать EclEmma попробовать. Вы можете запустить webapp в своей среде IDE с помощью eclemma, а затем просто запустить любой тест, который вы хотите запустить (вне eclemma), и он будет красиво аннотировать код, который работает с зеленым.

+0

Я пытаюсь использовать .war файлы, используя cobertura-2.0.3. Когда я запускаю cobertura-instrument.bat. Я получаю исключение в потоке «main» Java.lang.NoClassDefFoundError. – user3193257

1

Если вы хотите измерить покрытие кода, вы должны использовать Jacoco. Он также позволяет измерять модульные тесты и интеграционные тесты.

Все, что вам нужно сделать, это добавить: зависимые пакеты

<dependency> 
    <groupid>org.jacoco</groupid> 
    <artifactid>org.jacoco.core</artifactid> 
    <version>0.6.2.201302030002</version> 
    <scope>test</scope> 
    </dependency> 

и добавить jacoco-Maven-плагин. Обратите внимание, что если вы не будете использовать сонар, то вам придется заменить $ {} sonar.jacoco.reportPath свойства с сырыми пути к файлу

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.6.2.201302030002</version> 
    <executions> 
    <!-- prepare agent for measuring unit tests --> 
    <execution> 
     <id>prepare-unit-tests</id> 
     <goals> 
     <goal>prepare-agent</goal> 
     </goals> 
     <configuration> 
     <destFile>${sonar.jacoco.reportPath}</destFile> 
     </configuration> 
    </execution> 

    <!-- prepare agent for measuring integration tests --> 
    <execution> 
     <id>prepare-integration-tests</id> 
     <goals> 
     <goal>prepare-agent</goal> 
     </goals> 
     <phase>pre-integration-test</phase> 
     <configuration> 
     <destFile>${sonar.jacoco.itReportPath}</destFile> 
     <propertyName>itCoverageAgent</propertyName> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

Если вы хотите также использовать гидролокатор, а затем указать такие свойства:

<properties> 
    <!-- select JaCoCo as a coverage tool --> 
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> 
    <!-- force sonar to reuse reports generated during build cycle --> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    <!-- set path for unit tests reports --> 
    <sonar.jacoco.reportPath>${project.basedir}/target/jacoco-unit.exec</sonar.jacoco.reportPath> 
    <!-- all modules have to use the same integration tests report file --> 
    <sonar.jacoco.itReportPath>${project.basedir}/../target/jacoco-it.exec</sonar.jacoco.itReportPath> 
</properties> 

Вы можете найти более подробную информацию о http://www.kubrynski.com/2013/03/measuring-overall-code-coverage-in.html

 Смежные вопросы

  • Нет связанных вопросов^_^