Maven進行測試Test


地址:https://blog.csdn.net/yonggang7/article/details/79780487  

 

Maven測試
maven測試為 default 生命周期中的test階段。
test階段與 maven-surefire-plugin 的test目標相綁定了, 這是一個內置的綁定。
Maven通過插件來執行 JUnit 和 TestNG 的測試用例。

maven-surefire-plugin 的test目標會自動執行測試源碼路徑下符合命名模式的測試類。
默認測試源代碼路徑: src/test/java/
測試類命名模式:
**/Test*.java
**/*Test.java
**/*TestCase.java
按上述模式命名的類, 使用 mvn test 命令就能自動運行他們。

跳過測試
下面命名跳過測試:
mvn install -DskipTests
也可以在POM文件中配置 maven-surefire-plugin

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests>
<!--
skip 對應命令行參數為 maven.test.skip
-->
<skip>false</skip>
</configuration>
</plugin>
 
不推薦這種做法,會讓項目長期跳過測試。

如果想不僅跳過測試運行,還跳過測試代碼的編譯,使用下面命令:
mvn package -Dmaven.test.skip=true
maven.test.skip 控制了 maven-compiler-plugin 和 maven-surefire-plugin 兩個插件的行為。

Maven動態指定測試用例
maven-surefire-plugin 使用 test 參數指定測試用例, 為測試用例的類名
mvn test -Dtest=RandomTest
只執行 RandomTest 這個測試類.
mvn test -Dtest=RandomTest#myTest
上面命令,只運行 RandomTest 類的 myTest 方法

可以指定多個類,逗號分隔
mvn test -Dtest=RandomTest,Random2Test
也可以用 * 匹配多個
mvn test -Dtest=Random*Test
*和 逗號可以結合使用。

如果不指定或者找不到測試類則構建失敗
mvn test -Dtest
failIfNoTests 參數控制沒有測試用例不報錯
mvn test -Dtest -DfailIfNoTests=false

包含測試用例
將不符合命名模式測試類自動運行測試。
修改POM文件

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
 
兩個星號 ** 表示匹配任意路徑。
上面表示匹配已 Tests.java 結尾的Java類。

排除測試用例
排除測試用例不實用test自動運行
使用 excludes 節點

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<excludes>
<exclude>**/*ServiceTest.java</exclude>
</excludes>
</configuration>
</plugin>
 
生成測試報告
測試報告默認生成 target/surefire-reports 目錄下,生成 txt, 和 xml 格式的。

測試代碼重用
mvn package 會打包項目主代碼和資源文件代碼,沒有包含測試代碼。
如果想一起打包測試用例,供依賴方使用, 使用 maven-jar-plugin 插件

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
 
maven-jar-plugin 有兩個目標 jar ,test-jar,
jar 內置綁定在 default 生命周期的 package 階段。
test-jar沒有內置綁定。

依賴方引入時 dependency

<dependency>
<groupId>org.A</groupId>
<artifactId>A</artifactId>
<version>5.0.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
 
需要設置 type 和 scope。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM