易于使用的单位和集成代码
有什么事嗎?
我的前一篇文章展示了如何使用JUnit類別輕松拆分單元和集成測試套件。
http://johndobie.blogspot.com/2012/04/unit-and-integration-tests-with-maven.html
下一步的邏輯步驟是能夠查看每個(gè)測試套件的指標(biāo)。
本示例說明了如何使用Jacoco和Sonar進(jìn)行此操作。
碼
示例代碼在這里。
svn co https://designbycontract.googlecode.com/svn/trunk/examples/maven/categories-sonar mvn clean install sonar:sonar聲納
此示例依靠Sonar來顯示代碼覆蓋率指標(biāo)。 Sonar是一個(gè)狂熱的開源代碼質(zhì)量工具,每個(gè)人都應(yīng)該看看。
http://www.sonarsource.org/
對于我們的示例,需要進(jìn)行幾個(gè)簡單的配置更改。
以下鏈接顯示了如何安裝Sonar并進(jìn)行更改
http://johndobie.blogspot.com/p/setting-up-sonar.html
拆分測試套件。
此示例依靠JUnit類別來劃分測試。
我們定義一個(gè)標(biāo)記器接口,然后將其應(yīng)用于我們想要拆分的測試。
public interface IntegrationTest {}類別注釋將添加到您的測試類中。 它采用新界面的名稱。
import org.junit.experimental.categories.Category; @Category(IntegrationTest.class) public class ExampleIntegrationTest{@Testpublic void longRunningServiceTest() throws Exception {} } 整個(gè)過程非常簡單,并在此處進(jìn)行了詳細(xì)說明
http://johndobie.blogspot.com/2012/04/unit-and-integration-tests-with-maven.html
分析代碼覆蓋率
我們使用jacoco插件進(jìn)行代碼覆蓋。 這里有Jacoco的概述。
http://johndobie.blogspot.com/2012/01/unit-test-code-coverage.html
我們首先定義jacoco coverage文件的目錄。
配置單元測試
然后,我們通過運(yùn)行標(biāo)準(zhǔn)的surefire插件(其中Jacoco代理指向$ {sonar.jacoco)來啟動單元測試。 reportPath} 。 這用于存儲單元測試代碼覆蓋率結(jié)果。
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.7.2</version> <configuration><argLine>-javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.reportPath},includes=com.*</argLine><includes><include>**/*.class</include></includes><excludedGroups>com.test.annotation.type.IntegrationTest</excludedGroups> </configuration> </plugin>我們忽略以下配置的任何標(biāo)記的集成測試
<excludedGroups>com.test.annotation.type.IntegrationTest</excludedGroups>配置集成測試
對于集成測試,我們使用故障保護(hù)插件,并將Jacoco代理指向$ {sonar.jacoco。 itReportPath} 。 這用于存儲集成測試代碼覆蓋率結(jié)果。
<plugin> <plugin><artifactId>maven-failsafe-plugin</artifactId><version>2.12</version><dependencies><dependency><groupId>org.apache.maven.surefire</groupId><artifactId>surefire-junit47</artifactId><version>2.12</version></dependency></dependencies><configuration><groups>com.test.annotation.type.IntegrationTest</groups></configuration><executions><execution><goals><goal>integration-test</goal></goals><configuration><argLine>-javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.itReportPath},includes=com.*</argLine><includes><include>**/*.class</include></includes></configuration></execution></executions> </plugin>我們還告訴插件使用正確的JUnit類別
<configuration><groups>com.test.annotation.type.IntegrationTest</groups> </configuration>運(yùn)行這些文件時(shí),它們將生成以下2個(gè)覆蓋文件。
開始聲納
在運(yùn)行構(gòu)建之前,您需要啟動Sonar服務(wù)器。
http://johndobie.blogspot.com/p/setting-up-sonar.html
運(yùn)行示例
我們可以使用以下命令運(yùn)行全部
mvn clean install sonar:sonar如果瀏覽到聲納實(shí)例,您將看到以下結(jié)果。
參考: Agile Engineering Techniques博客上的JCG合作伙伴 John Dobie提供的Easy Unit和Integration Code Coverage 。
翻譯自: https://www.javacodegeeks.com/2012/05/easy-unit-and-integration-code-coverage.html
總結(jié)
以上是生活随笔為你收集整理的易于使用的单位和集成代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 属猪女人的性格和脾气(十二生肖女人性格表
- 下一篇: 测试路由器手机无线性能如何测试路由器的实