Spring4.3.1版本集成Junit测试需要至少Junit4.12或更高版本,否则@RunWith(SpringRunner.class)注解会一直报错,导致如下异常:
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=addTest], {ExactMatcher:fDisplayName=addTest(com.ala.module.service.TestServiceTest)], {LeadingIdentifierMatcher:fClassName=com.ala.module.service.TestServiceTest,fLeadingIdentifier=addTest]] from org.junit.internal.requests.ClassRequest@72c25346 at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:35) 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)
原因就是编译测试类不通过导致的问题。
其实在SpringRunner的父类SpringJUnit4ClassRunner中可以看到如下图异常声明: