Maven單元測試報告及測試覆蓋率

来源:http://www.cnblogs.com/qinpengming/archive/2016/02/28/5225380.html
-Advertisement-
Play Games

對junit單元測試的報告:類似這樣的結果 ------------------------------------------------------- T E S T S ------------------------------------------------------- Runnin


 對junit單元測試的報告:類似這樣的結果
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.cn.qin.actionTest.UserActionTest
sdffsdfsdf
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.061 sec - in com.cn.qin.actionTest.UserActionTest

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) < [cobertura]test @ Struts <<<
[INFO] 
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) @ Struts ---
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 3 classes.
Report time: 298ms

運行報告是junit自己的報告輸出,和咱們在Eclipse運行的報告差不多。以上代表運行了3個用例,和預期效果不符的是0個,失敗的用例是0個,忽略的用例數是0個。   如果需要跳過單元測試,則可以運行如下命令

1.  mvn package -DskipTests   大家可能要問,為何Maven能夠自己尋找我們編寫的測試類呢?其實還是那句約定大於配置。Maven自動去尋找src/test/java下麵的類,當此文件夾下麵的類符合以下規範,那麼Maven預設認為他們是單元測試用例類。   Test*.java:任何目錄下以Test為開始的類   *Test.java: 任何目錄下以Test為結尾的類   *TestCase.java: 任何目錄下以TestCase為結尾的類。   如果想在一段時間內節省項目構建時間,暫時全部忽略單元測試。那麼可以在pom.xml中配置如下
<build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.5</version>
              <configuration>
                 <skipTests>true</skipTests>
              </configuration>
          </plugin>
      </plugins>
  </build>

等到項目完全開發完了,需要測試用例的時候將其註釋掉即可。

本個模塊有兩個測試用例類,如果僅僅想運行一個測試用例該怎麼辦。 運行下麵命令: test -Dtest=AccountImageServiceImplTest 這個是指定具體運行哪個測試用例。當然需要將pom文件中忽略測試用例的配置註釋掉。 也可以測試多個測試用例: mvn test -Dtest=AccountImageServiceImplTest,AccountImageUtilTest 也可以使用模糊匹配進行測試:mvn test -Dtest=*Test
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.5</version>
      <configuration>
        <includes>
          <include>**/*Test.java</include>
        </includes>
        <excludes>
          <exclude>**/AccountImageUtilTest.java</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

其中includes是需要測試的類,excludes是要排除之外測試用例。可以使用模糊匹配。**用來匹配任意件路經,*匹配任意類。

 

Junit的單元測試報告的pom.xml配置

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>2.12.2</version>
      <configuration>
        <showSuccess>false</showSuccess>
      </configuration>
    </plugin>
  </plugins>
</build>
這個預設生成的報告是txt,要生成html的報告需要使用命令mvn surefire-report:report. 這會在target/site下麵生成html的報告, 後來經測試發現, 其實maven-surefire-plugin就已經可以生成txt和xml的測試結果,如果要html的報告才需要maven-surefire-report-plugin    4.  測試報告   基本的測試報告上面已經介紹過了,下麵我們看看測試覆蓋率的報告。運行如下命令:mvn cobertura:cobertura   其pom.xml配置
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.5.1</version>
    </plugin>
  </plugins>
</build>
常用命令   mvn cobertura:help          查看cobertura插件的幫助   mvn cobertura:clean         清空cobertura插件運行結果   mvn cobertura:check         運行cobertura的檢查任務   mvn cobertura:cobertura     運行cobertura的檢查任務並生成報表,報表生成在target/site/cobertura目錄下   cobertura:dump-datafile     Cobertura Datafile Dump Mojo   mvn cobertura:instrument    Instrument the compiled classes   在target文件夾下出現了一個site目錄,下麵是一個靜態站點,裡面就是單元測試的覆蓋率報告。   詳細配置還可參考:http://zhanshenny.iteye.com/blog/1440571 5.  總結   這次我們介紹了Maven的測試,可以運行項目的單元測試用例,並生成報告。使用者可以根據自己的需要配置測試選項以滿足項目的測試需求。 我自己測試的pom.xml配置插件
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.19.1</version>
      <configuration>
        <!--設置包含的測試類 -->
        <includes>
          <include>******</include>
          <include>*/User*</include>
        </includes>
        <!-- 設置不進行測試類 -->
        <excludes>
          <exclude>Test*</exclude>
        </excludes>
        <!-- 跳過測試階段,測試類寫的有問題也會出錯,一般不推薦 -->
        <!--<skip>true</skip> -->
      </configuration>
    </plugin>

    <!-- 構建項目站點報告插件 -->
    <plugin>     
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>3.0-beta-3</version>
      <configuration>
        <!-- 配置站點國際化 -->
        <locales>zh_CN</locales>
        <!-- 輸出編碼 -->
        <outputEncoding>GBK</outputEncoding>
      </configuration>
    </plugin>
    
    <!-- 項目API doc報告 -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.7</version>
    </plugin>

    <!-- 單元測試報告html -->
    <plugin>      
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>2.12.2</version>
      <configuration>
        <showSuccess>false</showSuccess>
      </configuration>
    </plugin>
    
    <!-- 測試覆蓋率的報告 -->
    <plugin>      
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.5.1</version>
      <configuration>
        <formats>
          <format>html</format>
          <format>xml</format>
        </formats>
      </configuration>
      <executions>
        <execution>
          <id>cobertura-report</id>
          <goals>
            <goal>cobertura</goal>
          </goals>
          <phase>test</phase>
        </execution>
      </executions>
    </plugin>
    
  </plugins>
</build>

生成的測試覆蓋率會在你自己項目的target/site/cobertura/下麵  我的路徑是 file:///D:/InstallSoft/V2/workspace/user-parent/Struts/target/site/cobertura/index.html

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先說明:代碼片段是從網路獲取,然後自己修改。我想好的東西應該拿來分享。 先說下原理:當我們採集頁面的時候,如果被採集的網站需要登錄才能採集。不管是基於Cookie還是基於Session,我們都會首先發送一個Http請求頭,這個Http請求頭裡面就包含了網站需要的Cookie信息。當網站接收到發送過
  • 一、GO語言安裝 詳情查看:GO語言下載、安裝、配置 二、GoLang插件介紹 對於Visual Studio Code開發工具,有一款優秀的GoLang插件,它的主頁為:https://github.com/microsoft/vscode-go 這款插件的特性包括: Colorization 代
  • ASP.NET Web API中的action參數類型可以分為簡單類型和複雜類型。HttpResponseMessage Put(int id, Product item)id是int類型,是簡單類型,item是Product類型,是複雜類型。簡單類型實參值從哪裡讀取呢?--一般從URI中讀取所謂的
  • ASP.NET Web API的模型驗證與ASP.NET MVC一樣,都使用System.ComponentModel.DataAnnotations。具體來說,比如有:[Required(ErrorMessage="")][Range(0, 999)][Bind(Exclude="")][Disp
  • 閱讀目錄 一:什麼是泛型? 二:C#中泛型在Class上的實現 一:什麼是泛型? 我們在編程的時候需要一個數據類型,但是在剛開始的時候還不確定這個數據類型是怎麼樣的,或者說對於不同的多個數據類型有相同的功能和相同的操作,又不想多次的寫代碼,就需要用到泛型,表示同一個操作針對不同的數據類型 二:C#中
  • 之前一直聽各種大牛說 語言只是個工具,薪資低只是個人能力不行,啥.net java都是一樣的云云。現在才發現原來這句話的意思是 你覺得.net沒前途 薪資低 沒JAVA高 你TM就換JAVA呀。 等做JAVA覺得沒IOS高 丫就學IOS撒。最後發現IOS沒DT大數據工資高。改行雲計算就是了。 原來低
  • 通過 ajax() 與 一般處理程式,請求資料庫數據,實現界面無刷新。 Jquery ajax 請求參數詳細說明 http://www.w3school.com.cn/jquery/ajax_ajax.asp 代碼: 1 <!DOCTYPE html> 2 3 <html xmlns="http:/
  • 內容轉自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值類型在mvc中所有的controller類都必須使用"Controller"尾碼來命名並且對Action也有一定的要求: 必須是一個pub
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...