簡體   English   中英

為什么直接調用JUnit測試會通過,但是使用Maven調用時會失敗?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM