JaCoCo 程式碼覆蓋率工具(基於Maven+TestNG)
阿新 • • 發佈:2018-12-11
JaCoco是一個程式碼覆蓋率庫。
安裝:
以 Maven(http://www.testclass.net/maven/) 安裝為例:
<dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.9</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>report</id> <phase>prepare-package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
使用:
Maven專案目錄如下:
建立被測試類 Count.java
public class Count { /** * 計算並返回兩個引數的和 */ public int add(int x ,int y){ return x + y; } /** * 計算並返回兩個引數的和 */ public int sub(int x ,int y){ return x - y; } }
程式碼很簡單,這裡不做過多解釋。
接下來建立測試類CountTest.java。
import org.testng.annotations.Test; import static org.testng.AssertJUnit.assertEquals; public class CountTest { @Test public void testAdd() { Count count = new Count(); int result = count.add(2,2); assertEquals(result, 4); } }
通過TestNG單元測試框架來執行測試用例,注意這裡只編寫了針對Count類的 add()方法進行測試。
執行:
切換到jacocoTest專案根目錄下,執行“mvn install”命令。
檢視:
切換到專案下的“\target\site\jacoco\”目錄,開啟index.html檔案。
通過JaCoCo工具分析可以清楚地看哪些程式碼被執行了,而哪些未被執行。