我们有一个使用JUnit 4作为测试工具(w / SpringRunner
)的Spring 5应用程序。我们正在遇到一个问题,该问题正在运行带有<{>}未标记且带有@Test
批注的私有帮助器方法作为测试。发生在 IntelliJ和Maven 中。
方法签名为:
private Optional<TestSuiteJsonObject> createTestSuite(String name, TestType type) throws IOException, LicenseException {
测试类本身看起来像:
public class TestSuitesControllerTest extends ControllerTest
两者都没有注释。 ControllerTest
看起来像:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = CompanyTestApplication.class)
@AutoConfigureMockMvc
@Ignore
public class ControllerTest {
...
}
行为是,这些测试方法与null
参数一起运行。我们根本不希望它们运行。此类中的其余方法均用@Test
注释适当地标记。
我想知道单词test
是否在类/方法名称中的事实是否会导致JUnit将其标识为可运行,但是更改类和方法的名称没有效果。
将@Ignore
添加到私有方法也无效!
我们在做什么错?我们是否进入了一个替代维度,即测试线束实际上正在测试工程师的应力响应?
答案 0 :(得分:1)
这是一个愚蠢的错误,但我将其留给任何发现自己处于相同情况的未来人。
我有两个方法,具有相同的名称。测试方法:
@Test
@WithMockUser(username = "admin", roles = "ADMIN")
public void createSuite() throws Exception { ... }
和辅助方法:
private static Optional<TestSuiteJsonObject> createSuite(String name, TestType type) { ... }
我们以某种方式掩饰了这一点。 ♂️