我正在使用Maven編寫的項目。Maven單元測試
如果我做
mvn clean install
話,我希望它能運行在/test
forder的所有單元測試。
我將構建過程重定向並存儲到輸出文件中,並嘗試通過名稱找出單元測試。但是,我無法找到一些單元測試。似乎有些單元測試實際上並沒有在構建過程中執行。
我的問題是如何知道將在構建過程中執行的單元測試的選擇。
我正在使用Maven編寫的項目。Maven單元測試
如果我做
mvn clean install
話,我希望它能運行在/test
forder的所有單元測試。
我將構建過程重定向並存儲到輸出文件中,並嘗試通過名稱找出單元測試。但是,我無法找到一些單元測試。似乎有些單元測試實際上並沒有在構建過程中執行。
我的問題是如何知道將在構建過程中執行的單元測試的選擇。
您可以嘗試明確像這樣的命令行命名的組(S):
mvn clean install -Dtest.groups="unit,integration"
或者乾脆
mvn test -Dtest.groups="unit,integration"
這是什麼,我每天都在使用的例子。我的測試是在單元或集成組。如果您希望運行所有(或某些)測試而不需要明確指定要使用哪個gorups,則必須修改maven配置。在Maven的
這是運行集成測試的錯誤方式,因爲它們應該在集成測試生命週期階段運行,這個階段是在打包階段之後運行的,而且它是由maven-failsafe-plugin而不是maven-surefire-plugin處理的。 – khmarbaise 2013-03-27 07:56:54
我們一直在使用這種方法很長一段時間,我沒有任何負面的經驗。 – 2013-03-28 22:43:32
單元測試將他們的名字來選擇應遵循naming convention
<includes>
<include>**/*Test*.java</include>
<include>**/*Test.java</include>
<include>**/*TestCase.java</include>
</includes>
而且你需要把測試到默認位置的src /測試/ JAVA/。
您可以控制使用僅運行一個測試:
mvn -Dtest=MyTest test
運行集成測試是在集成測試階段處理的maven-failsafe-plugin的工作。集成測試的命名規則是:
<includes>
<include>**/*IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
</includes>
要獲得集成測試運行,你需要添加一個配置部分爲Maven的故障安全的插件。
比你,我有我的測試名稱xxxTests,一旦我改變到xxxTest他們被拾起。 – Airborne 2017-12-08 20:27:28
也許你已經知道這件事了,它與你的問題沒有任何關係,但默認情況下,mvn只運行名稱以「Test」(如TestBogosort或PrimeFinderTest)開頭或結尾的類的單元測試(在任何包src/test/java文件夾) – dspyz 2013-03-26 22:30:16
也可以在運行之前將每個測試的名稱打印到stderr。這很粗魯,但會告訴你。 – dspyz 2013-03-26 22:33:08