我有一個包含多個模塊的項目。當所有測試通過時,Maven測試運行它們。使Maven運行所有測試,即使有些失敗
當第一個模塊中的測試失敗時,maven將不會繼續下一個項目。我在Surefire設置中將testFailureIgnore設置爲true,但它無濟於事。
如何讓maven運行所有測試?
我有一個包含多個模塊的項目。當所有測試通過時,Maven測試運行它們。使Maven運行所有測試,即使有些失敗
當第一個模塊中的測試失敗時,maven將不會繼續下一個項目。我在Surefire設置中將testFailureIgnore設置爲true,但它無濟於事。
如何讓maven運行所有測試?
您可以使用surefire 2.6進行測試,並且可以使用testFailureIgnore=true
配置surefire。或者在命令行上:
mvn install -Dmaven.test.failure.ignore=true
IIRC這樣做的結果是整個構建沒有失敗,而不是運行所有測試並最終失敗。 – 2011-11-03 18:23:21
這是唯一適用於我的選項......「-fae」選項對測試失敗沒有任何作用 – Yoi 2017-03-17 15:58:02
嘗試添加下面的配置萬無一失插件,在根項目的pom.xml中:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
從文檔:
-fae
,--fail-at-end
之後只會失敗;允許所有非影響構建繼續
-fn
,--fail-never
永遠不會失敗的構建,無論項目結果
所以,如果你比你使用-fae
安全測試一個模塊。
否則,如果您有多個模塊,並且如果您希望所有這些模塊都經過測試(即使依賴於失敗的測試模塊),您應該運行mvn clean install -fn
。
-fae
將繼續使用失敗測試的模塊(將運行所有其他測試),但所有依賴它的模塊將被跳過。
另外,您可以爲cmd添加-e以提供一些錯誤信息。 – despot 2012-09-27 08:03:36
一個快速的回答:
mvn -fn test
工程與嵌套生成項目。
您可以嘗試使用Maven的故障安全插件Maven的萬無一失,插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<configuration>
........
</configuration>
</execution>
</executions>
</plugin>
[Maven Failsafe插件](https://maven.apache.org/surefire/maven-failsafe-plugin/)是一個非常類似於Surefire的插件,但是用於運行集成測試。如果測試失敗,它將繼續工作,但它在生命週期中處於不同的位置。 – CoverosGene 2015-07-30 14:22:59
什麼版本? – 2010-11-13 21:50:27
@Pascal - SureFire 2.5 – ripper234 2010-11-14 06:59:32