1. 程式人生 > >JaCoCo 程式碼覆蓋率工具(基於Maven+TestNG)

JaCoCo 程式碼覆蓋率工具(基於Maven+TestNG)

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工具分析可以清楚地看哪些程式碼被執行了,而哪些未被執行。

相關推薦

JaCoCo 程式碼覆蓋率工具基於Maven+TestNG

JaCoco是一個程式碼覆蓋率庫。 安裝:  以 Maven(http://www.testclass.net/maven/) 安裝為例: <dependencies> <dependency> <gro

JaCoCo 程式碼覆蓋率工具基於Maven+TestNG

JaCoco是一個程式碼覆蓋率庫。 安裝: 以 Maven(http://www.testclass.net/maven/) 安裝為例: <dependencies> <dependency> <groupId>org.test

自己動手做聊天工具基於 Redis 開發

說起聊天軟體, 你一定會想到微信、QQ。所以聊天軟體總給人給龐大,複雜的感覺。但當我們抽繭剝絲之後,你也會驚呼“哇,原來這麼簡單,我自己也能編寫聊天軟體了!” Redis 號稱“世界上最快的資料庫", 基於 Redis 我們可以開發很多有趣的應用。此 Chat 我們將一起基於 Redis 開發一款

將專案打包成war基於maven springboot

首先:將jar變成warpom.xml中<packaging>war</packaging>其次:在pom.xml中加下列依賴:<dependency> <groupId>org.springframework.boot<

自動化測試工具基於WordCount作業

本自動化測試的程式用於自動化測試[WordCount作業](https://edu.cnblogs.com/campus/fzu/FZUSESPR21/homework/11672),採用Java開發(基於jdk1.8+),基於Maven來管理專案。 ## 支援的語言和開發進度 | 語言 | 進度

JAVA程式碼覆蓋率工具JaCoCo-實踐篇

一、覆蓋率專案中使用介紹 本節開始詳細介紹下專案中的JaCoCo實戰經驗。 下圖是覆蓋率在實際在專案中的主要實施點: 分別詳細介紹下: 1.1 確定插樁方式 Android專案只能使用JaCoCo的離線插樁方式。 為什麼?主要是因為Android覆蓋率的特殊性

JaCoCo 程式碼覆蓋率測試工具整合

對於JaCoCo的介紹就不多說了,網上多的是介紹,不行也可以去官網檢視一下就行了。相信大家也很不喜歡這類部落格——開頭不寫怎麼解決問題,而是給你講背景、講歷史,講了一堆。終於到解決問題的方法了,發現還不適用自己的情況。真是XXXX了。 所以,我先給出JaCoCo的官網,大家可以自行檢

JAVA程式碼覆蓋率工具JaCoCo-踩坑篇

一、覆蓋率踩過的坑 在專案中使用JaCoCo覆蓋率的時候,也遇到過各種奇葩的問題,在這裡列出來分享下,問題和實際的專案關係密切,希望對有遇到過相似問題的童鞋有所啟發。 1.1 覆蓋率包在部分手機6.0上安裝失敗 事情起因:在測試新功能時,用打的覆蓋率包,外包反饋部分手機6.0上安裝不了。 問題重現:

JAVA程式碼覆蓋率工具JaCoCo-原理簡單分析

作為一個測試人員,保證產品的軟體質量是其工作首要目標,為了這個目標,測試人員常常會通過很多手段或工具來加以保證,覆蓋率就是其中一環比較重要的環節。 我們通常會將測試覆蓋率分為兩個部分,即“需求覆蓋率”和“程式碼覆蓋率”。 需求覆蓋:指的是測試人員對需求的瞭解程度,根據

AVA 程式碼覆蓋率工具 JaCoCo-實踐篇

一、覆蓋率專案中使用介紹本節開始詳細介紹下專案中的JaCoCo實戰經驗。下圖是覆蓋率在實際在專案中的主要實施點:分別詳細介紹下:1.1 確定插樁方式Android專案只能使用JaCoCo的離線插樁方式。為什麼?主要是因為Android覆蓋率的特殊性:一般執行在伺服器java程

【騰訊TMQ】JAVA程式碼覆蓋率工具JaCoCo-踩坑篇

作者:劉洋 一、覆蓋率踩過的坑 在專案中使用JaCoCo覆蓋率的時候,也遇到過各種奇葩的問題,在這裡列出來分享下,問題和實際的專案關係密切,希望對有遇到過相似問題的童鞋有所啟發。 1.1 覆蓋率包在部分手機6.0上安裝失敗 事情起因:在測試新功

JAVA 程式碼覆蓋率工具 JaCoCo-原理篇

一、 覆蓋率定義 作為一個測試人員,保證產品的軟體質量是其工作首要目標,為了這個目標,測試人員常常會通過很多手段或工具來加以保證,覆蓋率就是其中一環比較重要的環節。 我們通常會將測試覆蓋率分為兩個部分,即“需求覆蓋率”和“程式碼覆蓋率”。 需求覆蓋:指的是測試人

JAVA 程式碼覆蓋率工具 JaCoCo-踩坑篇

一、覆蓋率踩過的坑在專案中使用JaCoCo覆蓋率的時候,也遇到過各種奇葩的問題,在這裡列出來分享下,問題和實際的專案關係密切,希望對有遇到過相似問題的童鞋有所啟發。1.1 覆蓋率包在部分手機6.0上安裝失敗事情起因:在測試新功能時,用打的覆蓋率包,外包反饋部分手機6.0上安裝

Ubuntu 16.04安裝Fiddler抓包工具基於Mono,且會有BUG

clas 新的 pan ddl chmod mon aid bsp code 說明:Fiddler官方提供了Mono版本的,但是只有2014版本的,不是最新的,並且運行期間會有BUG,比如界面錯亂卡死等等,但是勉強能代理,抓SSL的包,如果使用了要做好心理準備。將就一下還是

《第一行程式碼》 第五章:全域性大喇叭 筆記基於Android8.0

由於Android8.0對廣播機制做了很大的調整理,導致《第一行程式碼》中很多例項無法正常執行,因此我結合書本,自行整理了一下。 廣播需要接收器和傳送器。系統的動作都會發送一條廣播,例如電量的變化,系

jenkins教程基於maven+Git+jdk的簡單搭建

對於jenkins我已經“垂涎”一年多了,之所以沒有認真地玩一遍,也是因為沒有工作的動力驅動。正好,最近團隊在搭建敏捷工具,自然而然就由我來研究一波啦。 1 下載軟體 選擇 Long-term Support (LTS)的版本,可選擇下載war包直接部署在tomc

Hibernate的實現基於MavenHibernate學習二

一、建立Maven專案 二、新增hibernate所需的包 在pom.xml檔案標籤當中新增如下依賴: <!-- 新增Hibernate依賴 --> <dependency> <group

程式設計工具Mac下的Java環境和Node.js/Ruby開發環境搭建基於Intellj Idea

參考: 一、Mac下的Java環境配置 1. 安裝Jdk 下載Mac版本的JDK,下好之後安裝,此時在bash中使用java -version命令已經看到Version號。 Mac支援多版本Java虛擬機器的選擇,選擇如下: 開啟Java控制檯之後可以在Desktop

maven 對spark 原始碼進行編譯基於Centos 7

maven 對spark 原始碼進行編譯( 基於Centos 7 ) 1 、寫在前面的話     有些小夥伴可能會問:Spark官網不是已經提供了Spark針對不同版本的

用C++寫的三子棋程式碼基於DOS介面

#include<iostream> #include<stdlib.h> using namespace std; class Tictoc { public:  Tictoc();//賦值陣列t[3][3],初始化為空字元,還有顯示棋盤  voi