我是新來的java世界。我們的團隊正在使用Maven將所有東西都構建成單個.war文件。我正在尋找工具來測試.war文件以啓用代碼覆蓋。想法是手動測試.war文件,然後運行測試。Maven代碼覆蓋範圍
我看了幾個工具,但沒有得到正在尋找什麼,例如,艾瑪,小丑,cobertura等尋找簡單的指示。
我是新來的java世界。我們的團隊正在使用Maven將所有東西都構建成單個.war文件。我正在尋找工具來測試.war文件以啓用代碼覆蓋。想法是手動測試.war文件,然後運行測試。Maven代碼覆蓋範圍
我看了幾個工具,但沒有得到正在尋找什麼,例如,艾瑪,小丑,cobertura等尋找簡單的指示。
Cobertura會支持。看到這個問題的答案。
Java: measure code coverage for remote scripting tests
如果你想做到這一點的發展,而不是你的構建服務器上,你可能想給eclemma一試。您可以使用eclemma在您的IDE中啓動您的Web應用程序,然後只需運行您想要運行的任何測試(在eclemma之外),它將很好地註釋以綠色運行的代碼。
我想用cobertura-2.0.3來測試.war文件。當我運行cobertura-instrument.bat。我在線程「main」Java.lang.NoClassDefFoundError中得到異常。 – user3193257
如果你想測量代碼覆蓋範圍,你應該使用Jacoco。它還允許測量單元測試和集成測試。
所有你需要做的就是添加dependecy:
<dependency>
<groupid>org.jacoco</groupid>
<artifactid>org.jacoco.core</artifactid>
<version>0.6.2.201302030002</version>
<scope>test</scope>
</dependency>
,並添加jacoco - Maven的插件。請注意,如果你不會使用聲納,那麼你必須與原始文件路徑
<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>
如果你還想使用聲納,然後指定這樣的屬性來代替$ {} sonar.jacoco.reportPath性質:
<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
Maven的更多詳細信息,是很不錯的構建工具。有什麼具體的理由去尋找新的工具嗎? –
我想知道如何使用Maven來構建代碼覆蓋。 – user3193257
儀器.war文件???通常情況下,你會在你的項目上運行maven測試,如果100%通過,然後繼續使用mvn包,它會構建你的戰爭文件。代碼覆蓋符合maven測試步驟。您可以存儲HTML報告,整合統計數據,並且只有在行數超過90%的情況下才能進入包裝步驟。我在我的Grails項目上使用cobertura,在我的Java/groovy項目中使用Emma。安裝/使用非常簡單。不要重新發明輪子! – shuttsy