导入 org.junit.Test 抛出错误为“未找到测试运行程序“JUnit 5”的测试”

use*_*064 0 java junit mockito junit5

如果我org.junit.Test在运行 JUnit 时导入,它会给我一个错误,如“未找到 Test Runner JUnit 5 的测试”。

相反,如果我导入,org.junit.jupiter.api.Test那么我可以运行 JUnit 测试。

gly*_*ing 6

org.junit.Test是一个 JUnit 4 注释。Junit5 测试运行器不会发现带有org.junit.Test.

Junit5 测试运行器发现一个用org.junit.jupiter.api.Test.

所以,这就是为什么你会得到“没有通过测试发现与测试运行的JUnit 5 ”试图运行不包含带注释的任何测试的测试范围内时org.junit.jupiter.api.Test

听起来像你可能会从迁移到Junit4 Junit5。如果是这样,您需要接受一些更改。该Junit5文档提供了一些有用的技巧包括:

注释驻留在org.junit.jupiter.api包中。

断言驻留在org.junit.jupiter.api.Assertions.

假设存在于org.junit.jupiter.api.Assumptions.

@Before并且@After不再存在;使用@BeforeEach@AfterEach 代替。

@BeforeClass并且@AfterClass不再存在;使用@BeforeAll@AfterAll代替。

@Ignore不再存在:改用@Disabled或 其他内置执行条件之一

@Category不复存在; 使用@Tag来代替。

@RunWith不复存在; 由 取代@ExtendWith

@Rule并且@ClassRule不再存在;被@ExtendWith和 取代@RegisterExtension