我正在開發Java/Maven項目。我使用mvn test
來運行我的測試套件。但是,在這種情況下,所有斷言都已啓用。不幸的是,這會使一些操作的時間從log(n)
增加到n^2
,這是相當不方便的。更重要的是該操作在依賴關係packageA
中定義,而我在packageB
上工作。使用普通的Java,我可以添加-ea:packageB...
來只啓用我實際需要的斷言。是否可以使用pom.xml
的內容或mvn
的命令行參數來實現此行爲?我知道我可以禁用全部斷言,但我寧願保留包中的斷言,我實際上正在處理...調整maven測試的斷言
0
A
回答
0
您可以使用surefire插件實現。但首先你需要爲不同的包指定配置文件。
使用surefire插件,您可以使用通配符或正則表達式排除或包含軟件包。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>%regex[.*[Cat|Dog].*Test.*]</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<excludes>
<exclude>**/TestCircle.java</exclude>
<exclude>**/TestSquare.java</exclude>
</excludes>
</configuration>
</plugin>
你可以找到更詳細的信息on this site。
0
我使用這些屬性:
<maven.test.skip>false</maven.test.skip>
<maven.test.failure.ignore>false</maven.test.failure.ignore>
然後你可以離開這個斷言的是,但更改這些屬性要麼失敗的Assert.fail(),或根本不做測試。
或類似的使用CMD,比如增加一個額外的參數:
-Dmaven.test.skip =真
相關問題
- 1. 測試Ember.Logger.error斷言
- 2. Clojure的測試:測試斷言
- 3. 斷言調試器斷言失敗
- 4. MFC的.dll調試斷言
- 5. Asynchronus斷言在JavaScript測試
- 6. PHP簡單測試斷言
- 7. 有線JUnit測試斷言
- 8. 如何測試斷言?
- 9. 如何使用maven運行代碼(測試)時啓用斷言?
- 10. fprintf調試斷言失敗
- 11. 調試斷言失敗
- 12. 調試斷言失敗 - C++
- 13. 調試斷言失敗
- 14. 調試斷言失敗
- 15. 調試斷言失敗CDialog
- 16. 調試斷言失敗
- 17. 調試斷言使用CMFCPropertyGridFileProperty
- 18. 調試斷言失敗
- 19. 調試斷言錯誤
- 20. 調試斷言失敗C++
- 21. 調試斷言失敗
- 22. 調試斷言錯誤viewrich.cpp
- 23. 調試斷言失敗
- 24. Grails的斷言 - 驗證斷言失敗的單元測試
- 25. 斷言在本地C++調試期間使用的斷言/調試
- 26. 在任何測試中跳過整個測試套件斷言失敗
- 27. Django的查看測試斷言錯誤
- 28. 斷言測試失敗是成功的
- 29. 添加斷言編碼的UI測試
- 30. 測試斷言SpringSecurity編碼的密碼
如果重構你的代碼是可能的,你可以嘗試使用的東西[類似在這裏解釋](http://stackoverflow.com/questions/20857658/dynamic-method-dispatch/20857998#20857998)其中你有基本的斷言在基類和所有的斷言在某些情況下在調度的對象中省略。通過maven配置文件,你可以決定如果你想要所有的斷言或只是基本的。一般來說,你應該將你的單元測試分成[categories](http://www.hascode.com/2012/12/running-categorized-tests-using-junit-maven-and-annotated-test-suites/)雖然 –