我们有一个使用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添加到私有方法也没有任何效果!
我们做错什么了?我们是否进入了测试安全带实际上是测试工程师的应力响应的另一个维度?

发布于 2019-04-18 12:15:31
这是一个愚蠢的错误,但我会把它留给任何发现自己处于同样情况的未来的人。
我有两个方法--,同名。测试方法:
@Test
@WithMockUser(username = "admin", roles = "ADMIN")
public void createSuite() throws Exception { ... }帮助者方法:
private static Optional<TestSuiteJsonObject> createSuite(String name, TestType type) { ... }我们不知怎么掩盖了这件事。♂️
https://stackoverflow.com/questions/55745409
复制相似问题