[英]Why does JUnit test pass when invoked directly but fail when invoked using Maven?
我今天遇到一個錯誤,該錯誤通過Maven運行時測試失敗:“ mvn測試”,而直接通過jUnit運行時通過。
這是有問題的代碼:
public class TestAssert {
@Test
public void test() {
assert("test" == "test2");
}
}
上面的代碼通過了Junit測試,但是當使用Maven執行測試時,我收到此錯誤:
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec <<< FAILURE!
test(TestAssert) Time elapsed: 0.003 sec <<< FAILURE!
java.lang.AssertionError
at TestAssert.test(TestAssert.java:15)
直接使用jUnit時何時通過而使用Maven時失敗?
assert
這取決於您是否使用評估或不-ea
(啟用斷言)標志。 因此,最好的猜測是,直接運行測試時的默認配置已啟用-ea
但未啟用maven。
用junit測試該條件的正確方法是:
assertTrue("test" == "test2");
要么:
assertSame("test", "test2");
JUnit測試在Eclipse / GGTS中通過,但在通過“ mvn test”運行時失敗,並顯示錯誤信息:“ 引起者:java.lang.AssertionError ”
原因可能與此處前面的答案恰恰相反。 嘗試為surefile禁用enableAssertions,並且在挖掘2天后對我有用。 (默認情況下是這樣!)
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.20</version> <configuration> <enableAssertions>false</enableAssertions> </configuration>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.