我正在尝试使用JUnit5。
首先,我向maven项目添加了依赖项:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
然后,我创建了一个测试:
package com.example.multicurrency;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class JunitTests {
@Test
void testAssertTrue() {
assertTrue(false);
}
}
然后,我运行测试。以下是我所得到的:
org.junit.platform.launcher.core.DefaultLauncher handleThrowable
warning: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/platform/engine/support/filter/ExclusionReasonConsumingFilter
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.filter.ExclusionReasonConsumingFilter
org.opentest4j.AssertionFailedError:
Expected :<true>
Actual :<false>
结果符合我的预期。但是警告使我困惑。警告是什么意思?
答案 0 :(得分:3)
现在与Surefire 5.2.0
一起使用junit-jupiter-engine
的{{1}}版本。
2.22.0
似乎您被https://issues.apache.org/jira/browse/SUREFIRE-1564所震惊,它描述了一个已知问题,Surefire <dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
</dependencies>
内部保留了所有2.22.0
工件的版本1.2.0
。
答案 1 :(得分:0)
我通过将intellij的想法从2017.2更新为2018.2.4解决了这个问题。 但是我还没有弄清楚是什么原因造成的,以及它为什么得以解决。
感谢您的友好回答和评论。