论坛首页 入门讨论版

ant中junit任务: java.lang.NoSuchMethodError:....

浏览 1221 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2006-12-13 关键字: 单元测试

        这两天在研究eclipse上的ant运用,并写了相关的测试类等,但运行ant的junit任务时一个测试用例出错,但单独用eclipse的junit运行时是绿色条的。

       看回任务生成的报表文件,可以看到相关的错误信息如下:

Name Status Type Time(s)
testSave Error org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215) at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69) at org.easymock.classextension.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:77) at org.easymock.MockControl.(MockControl.java:133) at org.easymock.classextension.MockClassControl.(MockClassControl.java:189) at org.easymock.classextension.MockClassControl.(MockClassControl.java:194) at org.easymock.classextension.MockClassControl.createControl(MockClassControl.java:36) at com.teesoo.oa.user.EmployeeDaoTest.testSave(EmployeeDaoTest.java:18)
0.110
testGetByNameNotFound Error N/A

java.lang.NoClassDefFoundError at org.easymock.classextension.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:77) at org.easymock.MockControl.(MockControl.java:133) at org.easymock.classextension.MockClassControl.(MockClassControl.java:189) at org.easymock.classextension.MockClassControl.(MockClassControl.java:194) at org.easymock.classextension.MockClassControl.createControl(MockClassControl.java:36) at com.teesoo.oa.user.EmployeeDaoTest.testGetByNameNotFound(EmployeeDaoTest.java:37)
0.000

      其中测试用例用到easymock的扩展包,代码如下(完整代码看附件):

java 代码
  1. MockControl control = MockClassControl.createControl(HibernateTemplate.class);   
  2. HibernateTemplate ht = (HibernateTemplate) control.getMock();  

我觉得应该是asm.jar或者相关的jar的问题,不知各位有无遇到相关的问题?

   
最后更新时间:2006-12-13
是不是高手们不屑于回答呢?
   
0 请登录后投票
最后更新时间:2006-12-14
没有集成junit包吧……
   
0 请登录后投票
最后更新时间:2006-12-14
你写的test类中没有以test开头的方法????
   
0 请登录后投票
最后更新时间:2006-12-18
我删了blog上的文章,以为这里的也删掉了,:(

原来ant运行的时候用到了jdk1.5的tools.jar,而我的easymock扩展包是不支持1.5的。
可以设置window->preference..->ant->runtime的classpath项里的Global Entries,引入jdk1.4的tools.jar。
   
0 请登录后投票
最后更新时间:2006-12-18
colonel 写道
我删了blog上的文章,以为这里的也删掉了,:(

原来ant运行的时候用到了jdk1.5的tools.jar,而我的easymock扩展包是不支持1.5的。
可以设置window->preference..->ant->runtime的classpath项里的Global Entries,引入jdk1.4的tools.jar。


了解了...谢谢....
   
0 请登录后投票
论坛首页 入门讨论版

跳转论坛:
JavaEye推荐