qileilove

          blog已經(jīng)轉移至github,大家請訪問 http://qaseven.github.io/

          Maven中配置生成單元測試報告配置

           對junit單元測試的報告:
            1.  -------------------------------------------------------
            2.   T E S T S
            3.  -------------------------------------------------------
            4.  Running com.liuyan.account.mail.AccountImageServiceImplTest
            5.  ---------------------------------1990
            6.  Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.926 sec
            7.  Running com.liuyan.account.mail.AccountImageUtilTest
            8.  Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
            9.
            10.  Results :
            12.  Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
            運行報告是junit自己的報告輸出,和咱們在Eclipse運行的報告差不多。以上代表運行了3個用例,和預期效果不符的是0個,失敗的用例是0個,忽略的用例數(shù)是0個。
            如果需要跳過單元測試,則可以運行如下命令
            1.  mvn package -DskipTests
            大家可能要問,為何Maven能夠自己尋找我們編寫的測試類呢?其實還是那句約定大于配置。Maven自動去尋找src/test/java下面的類,當此文件夾下面的類符合以下規(guī)范,那么Maven默認認為他們是單元測試用例類。
            Test*.java:任何目錄下以Test為開始的類
            *Test.java: 任何目錄下以Test為結尾的類
            *TestCase.java: 任何目錄下以TestCase為結尾的類。
            如果想在一段時間內(nèi)節(jié)省項目構建時間,暫時全部忽略單元測試。那么可以在pom.xml中配置如下
          1.  <build>
          2.      <plugins>
          3.          <plugin>
          4.              <groupId>org.apache.maven.plugins</groupId>
          5.              <artifactId>maven-surefire-plugin</artifactId>
          6.              <version>2.5</version>
          7.              <configuration>
          8.                  <skipTests>true</skipTests>
          9.              </configuration>
          10.          </plugin>
          11.      </plugins>
          12.  </build>
            等到項目完全開發(fā)完了,需要測試用例的時候將其注釋掉即可。
           本個模塊有兩個測試用例類,如果僅僅想運行一個測試用例該怎么辦。運行下面命令
            1.  test -Dtest=AccountImageServiceImplTest
            這個是指定具體運行哪個測試用例。當然需要將pom文件中忽略測試用例的配置注釋掉。
            也可以測試多個測試用例
            1.  mvn test -Dtest=AccountImageServiceImplTest,AccountImageUtilTest
            也可以使用模糊匹配進行測試
            1.  mvn test -Dtest=*Test
          1.  <build>
          2.      <plugins>
          3.          <plugin>
          4.              <groupId>org.apache.maven.plugins</groupId>
          5.              <artifactId>maven-surefire-plugin</artifactId>
          6.              <version>2.5</version>
          7.              <configuration>
          8.                  <includes>
          9.                      <include>**/*Test.java</include>
          10.                  </includes>
          11.                  <excludes>
          12.                      <exclude>**/AccountImageUtilTest.java</exclude>
          13.                  </excludes>
          14.              </configuration>
          15.          </plugin>
          16.      </plugins>
          17.  </build>
            includes是需要測試的類,excludes是要排除之外測試用例。可以使用模糊匹配。**用來匹配任意件路經(jīng),*匹配任意類。
            Junit的單元測試報告:
          <reporting>
          <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>
          </reporting>
            這個默認生成的報告是txt,要生成html的報告需要使用命令mvn surefire-report:report. 這會在target/site下面生成html的報告
            后來經(jīng)測試發(fā)現(xiàn),其實maven-surefire-plugin就已經(jīng)可以生成txt和xml的測試結果,如果要html的報告才需要maven-surefire-report-plugin
            4.  測試報告
            基本的測試報告上面已經(jīng)介紹過了,下面我們看看測試覆蓋率的報告。運行如下命令
            1.  mvn cobertura:cobertura
            pom配置
          <project>
          ...
          <reporting>
          <plugins>
          <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.5.1</version>
          </plugin>
          </plugins>
          </reporting>
          ...
          </project>
            常用命令
            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文件夾下出現(xiàn)了一個site目錄,下面是一個靜態(tài)站點,里面就是單元測試的覆蓋率報告。
            詳細配置還可參考:http://zhanshenny.iteye.com/blog/1440571
            5.  總結
            這次我們介紹了Maven的測試,可以運行項目的單元測試用例,并生成報告。使用者可以根據(jù)自己的需要配置測試選項以滿足項目的測試需求。最后說一下,測試十分重要,往往大手筆的產(chǎn)品測試人員和開發(fā)人員的比例是2:1。

          posted on 2014-06-12 13:03 順其自然EVO 閱讀(7708) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 吴桥县| 蒙山县| 余干县| 图木舒克市| 太湖县| 四平市| 深圳市| 雷波县| 曲阳县| 阳山县| 报价| 井冈山市| 天全县| 石河子市| 阿鲁科尔沁旗| 沧州市| 凌海市| 丹阳市| 尉氏县| 桂东县| 双牌县| 河池市| 衡东县| 平武县| 天等县| 钟祥市| 常山县| 女性| 靖边县| 株洲市| 安福县| 朝阳市| 建始县| 农安县| 太康县| 天祝| 成武县| 嘉峪关市| 青阳县| 剑阁县| 伊宁市|