我在使用Junit进行单元测试时,出现的这个错误。上网差了一些资料后,将问题解决了。现在回过头来总结一下。可能总结的不够全面,欢迎指出不足!
首先看看出现的错误:
initializationError(org.junit.runner.manipulation.Filter)
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=cdShouldNotBeNull], {ExactMatcher:fDisplayName=cdShouldNotBeNull(soundsystem.CDPlayerTest)], {LeadingIdentifierMatcher:fClassName=soundsystem.CDPlayerTest,fLeadingIdentifier=cdShouldNotBeNull]] from org.junit.internal.requests.ClassRequest@27f8302d 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)
出现错误的原因:
1、单元测试方法上没有写@Test注解。
2、spring test和Junit版本的冲突。
解决方法:
1、因为没有写注解的话,在方法上加上注解就行了。
2、这个由于水平有限,说的不是太清楚,所以就拿我的问题举例。我的问题出现时,我的spring test版本是4.3.7,而Junit版本是4.1.0。然后查过资料后将Spring test的版本降低到了3.0.5,再次运行就不会出现这个错误了。然后我就又会过头来琢磨了会儿,返现spring test4.3.7版本是在2017年发布的,Junit4.1.0版本是在2011年发布的,修改spring test为3.0.5的版本是在2010年发布的。
所以我就得出个结论: Junit在测试时会调用spring test,Junit只能调用在Junit版本发布之前的spring test,如果调用Junit版本发布之后的spring test 就会出现这个错误。