日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

如何让代码更易于维护_易于使用的单位和集成代码

發布時間:2023/12/3 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让代码更易于维护_易于使用的单位和集成代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何讓代碼更易于維護

此示例說明如何使用Maven和Sonar為單元和集成測試生成覆蓋率。 它使用非常簡單的技術,只需10-15分鐘即可在任何現有的Maven構建中運行。 它可以用于單元,集成,ATDD或任何其他類型的測試套件。 覆蓋率結果顯示在聲納中。

有什么事嗎?

我的前一篇文章展示了如何使用JUnit類別輕松拆分單元和集成測試套件。
http://johndobie.blogspot.com/2012/04/unit-and-integration-tests-with-maven.html

下一步的邏輯步驟是能夠查看每個測試套件的指標。
本示例說明了如何使用Jacoco和Sonar進行操作。

示例代碼在這里。

svn co https://designbycontract.googlecode.com/svn/trunk/examples/maven/categories-sonar mvn clean install sonar:sonar

聲納

本示例依靠Sonar來顯示代碼覆蓋率指標。 Sonar是一個狂熱的開源代碼質量工具,每個人都應該看看。
http://www.sonarsource.org/

對于我們的示例,需要進行幾個簡單的配置更改。
以下鏈接顯示了如何安裝Sonar并進行更改
http://johndobie.blogspot.com/p/setting-up-sonar.html

拆分測試套件。

此示例依靠JUnit類別來劃分測試。

我們定義一個標記器接口,然后將其應用于我們想要拆分的測試。

public interface IntegrationTest {}

類別注釋將添加到您的測試類中。 它采用新界面的名稱。

import org.junit.experimental.categories.Category; @Category(IntegrationTest.class) public class ExampleIntegrationTest{@Testpublic void longRunningServiceTest() throws Exception {} }

整個過程非常簡單,并在此處進行了詳細說明
http://johndobie.blogspot.com/2012/04/unit-and-integration-tests-with-maven.html

分析代碼覆蓋率

我們使用jacoco插件進行代碼覆蓋。 這里有Jacoco的概述。
http://johndobie.blogspot.com/2012/01/unit-test-code-coverage.html
我們首先定義jacoco coverage文件的目錄。

<coverage.reports.dir>${basedir}/target/coverage-reports </coverage.reports.dir> <sonar.jacoco.reportPath>${coverage.reports.dir}/jacoco-unit.exec </sonar.jacoco.reportPath> <sonar.jacoco.itReportPath>${coverage.reports.dir}/jacoco-it.exec </sonar.jacoco.itReportPath> <sonar.jacoco.jar>${basedir}/lib/jacocoagent.jar </sonar.jacoco.jar>

配置單元測試

然后,我們通過運行標準的surefire插件(其中Jacoco代理指向$ {sonar.jacoco)來啟動單元測試 reportPath} 。 這用于存儲單元測試代碼覆蓋率結果。

<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>

我們忽略以下配置的任何標記的集成測試

<excludedGroups>com.test.annotation.type.IntegrationTest</excludedGroups>

配置集成測試

對于集成測試,我們使用故障保護插件,并將Jacoco代理指向$ {sonar.jacoco。 itReportPath} 。 這用于存儲集成測試代碼覆蓋率結果。

<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>

當它們運行時,它們將產生以下2個覆蓋率文件。

開始聲納

在運行構建之前,您需要啟動Sonar服務器。
http://johndobie.blogspot.com/p/setting-up-sonar.html

運行示例

我們可以使用以下命令運行全部

mvn clean install sonar:sonar

如果瀏覽到聲納實例,將看到以下結果。

參考: Agile Engineering Techniques博客上的JCG合作伙伴 John Dobie提供的Easy Unit和Integration Code Coverage 。


翻譯自: https://www.javacodegeeks.com/2012/05/easy-unit-and-integration-code-coverage.html

如何讓代碼更易于維護

總結

以上是生活随笔為你收集整理的如何让代码更易于维护_易于使用的单位和集成代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。