我在整合spring+mybatis时,用junit进行单元测试service时出现如下错误:
java.lang.NoSuchMethodError: org.junit.runner.Description.getClassName()Ljava/lang/String;
at org.eclipse.jdt.internal.junit4.runner.DescriptionMatcher$LeadingIdentifierMatcher.matches(DescriptionMatcher.java:95)
at org.eclipse.jdt.internal.junit4.runner.DescriptionMatcher$CompositeMatcher.matches(DescriptionMatcher.java:38)
at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.collectIncludedDescriptions(SubForestFilter.java:49)
at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.apply(SubForestFilter.java:41)
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)
java程序:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "{classpath:beans.xml}")
public class EbBrandServiceTest {
@Autowired
private EbBrandService ebBrandService;
@Test
public void testSaveEbBrand(){
EbBrand ebBrand = new EbBrand();
ebBrand.setWebsite("aaaaaa");
ebBrand.setImgs("bbbbb");
ebBrand.setBrandSort(1);
ebBrand.setBrandName("小米");
ebBrand.setBrandDesc("性价比高");
ebBrandService.saveEbBrand(ebBrand);
}
}
http://my.oschina.net/u/1011897/blog/199172
pom.xml 配置中有引用junit 吗? 如有再检查是否编译正常,版本是否正确
NoSuchMethodError 计算机说'没有这种方法'
排错过程, 1 看下后端有没有你想要的方法
2 看下配置文件
3 看下前端方法名是不是写错了
有没有解决?解决方法是啥 ?
解决不了啊,是不是 repository 有问题??
原来是我的mac eclipse 与 maven 之间的 bug , 可以整体测,不能单独测,哎,折腾2小时...
我一开始也不行 后来我先整体测试了一遍 成功了 之后我再单独测就可以了
这个是junit版本的问题,看源代码发现,在junit4.8.2里才有org.junit.runner.Description.getClassName()方法,你看下maven项目里引用的junit.jar包,使用反编译工具看下有没有getClassName()方法