【发布时间】:2018-05-22 11:47:57
【问题描述】:
运行 JUnit 测试时,它给出了一个初始化错误:没有找到匹配的测试。像这样:
prodapi-main-junit
initializationError(org.junit.runner.manipulation.Filter)
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testCreateSite], {ExactMatcher:fDisplayName=testCreateSite(com.company.product.api.web.rest.HostControllerTest)], {LeadingIdentifierMatcher:fClassName=com.company.product.api.web.rest.HostControllerTest,fLeadingIdentifier=testCreateSite]] from org.junit.internal.requests.ClassRequest@3c0f93f1
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
而测试代码如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ProductApplication.class)
@WebAppConfiguration
public class HostControllerTest{
@Test
public void testCreateSite() throws Exception {
......
}
}
加载类应该没问题,运行良好。还有其他与此类似的模块,它们可以运行。
我已经检查了可能的原因:
- 有人说缺少“测试”注释会导致此错误。 如您所见,代码确实具有注释。
- 有人说构建路径应该配置为在测试源文件夹下构建,获取测试类,然后导出。 我仔细检查的那个配置也很有效。
- 可能在编译时没有生成测试类,而我可以在目标文件夹下看到那些测试类。
我不知道是否还有其他可能的事情会导致这样的 Junit 测试错误。也许我应该检查类加载器?
【问题讨论】:
-
你检查过进口吗?也许你混合了来自 testng 的
@Test而不是JUnit? -
@mrkernelpanic 感谢您的 cmets。我不确定你的意思。但是我发现另外一个新添加的测试函数有冗余参数导致测试类的验证失败。
-
ok :) 我的意思是你的 Java 导入。
标签: spring unit-testing junit