使用maven运行单元測试总结
maven本身沒有單元測試框架,可是maven的default生命周期的test階段綁定了maven-surefire-plugin插件,該插件能夠調用Junit3、Junit4、TestNG等Java流行測試框架完畢單元測試。
在pom中增加Junit依賴
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version> </dependency>約定優于配置
maven的default生命周期的test階段與maven-surefire-plugin插件的test插件目標內置綁定。
默認情況下。maven-surefire-plugin的test目標會自己主動運行測試源代碼路徑(默認:src/test/java)下的全部符合一組命名規則的測試類。
該命名規則例如以下:
1. **/Test*.java 不論什么子文件夾下全部命名以Test開頭的java類 2. **/*Test.java 不論什么子文件夾下全部命名以Test結尾的java類 3. **/*TestCase.java 不論什么子文件夾下全部命名以TestCase結尾的java類跳過測試
pom中配置
- skipTests配置,跳過測試運行階段
- skip配置。跳過測試運行階段
mvn命令行中增加參數
- skipTests
- maven.test.skip(須要注意的是,maven-compiler-plugin插件的testCompile插件目標和maven-resources-plugin插件的testResources插件目標也有這個參數,假設使用-Dmaven.skip.test=true,則跳過了測試資源文件處理、測試代碼編譯和運行三個階段。關于maven的生命周期和插件的具體描寫敘述。請參考我的另兩篇博客:maven生命周期具體解釋和Maven插件具體解釋)
說明:此處的“maven.test.skip”為maven-surefire-plugin插件的test插件目標的參數的表達式,其相應的插件目標參數為上面pom中配置的skip參數。并非全部插件目標參數都有表達式。也就是說。一些插件目標參數僅僅能在pom中配置。
關于插件目標參數和其表達式的具體信息,能夠去maven官網的相應插件章查詢,地址為:maven官網插件。maven-surefire-plugin中skip的描寫敘述例如以下所看到的(請放大查看?):
跳過測試命令運行情況請參考我的還有一篇博客:maven跳過單元測試的兩個參數差別
動態指定要運行的測試用例
使用test參數能夠在命令行指定要運行的測試用例的類名。
1. mvn test -Dtest=demomavenTest 指定單個測試運行類 2. mvn test -Dtest=demo*Test 指定全部以demo開頭以Test結尾的測試類 3. mvn test -Dtest=demo*Test, heheTest 以逗號隔開多個指定的測試類注意:當test參數沒有值時,默認構建會失敗。此時加上failIfNoTests=false,即使沒有測試也不報錯:
mvn test -Dtest -DfailIfNoTests=false上述命令不會運行不論什么測試。構建也能順利完畢。
這也是一種跳過全部測試完畢構建的方法。
包括與排除測試用例
pom中能夠配置includes和excludes參數來包括和排除指定的測試類:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.5</version><configuration><includes><include>**/*Tests.java</include></includes><excludes><exclude>**/*ServiceTest.java</exclude><exclude>**/ServiceTest*.java</exclude></excludes></configuration></plugin>(本文是看了大神徐曉斌的maven3 in action一書的相關章節之后的讀書筆記和自己平時使用maven的一些經驗,僅用于學習交流。)
總結
以上是生活随笔為你收集整理的使用maven运行单元測试总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九度OJ—题目1032:ZOJ
- 下一篇: CentOS7和CentOS6怎样开启M