我有一个Maven管理的项目,它在单元测试中使用Mockito模拟。我可以在Maven构建中运行所有测试,并且运行时没有错误(并且传递!)。但是,如果我右键单击一个测试函数,并选择“Run As - > JUnit Test”,我会得到一个异常java.lang.NoSuchMethodError: org.mockito.Mockito.doAnswer(Lorg/mockito/stubbing/Answer;)Lorg/mockito/stubbing/Stubber;
。当然,如果我查看源代码,就会看到“缺失”方法,就像我说的那样,测试是从命令行编译并运行的。为什么我的基于Mockito的单元测试无法在Eclipse中运行?
最好我能想到的是,如果Eclipse试图通过为JUnit插件提供过时的Mockito工件(我在Maven依赖项中使用1.8.5)来“帮助”我,类似于Maven插件如何坚持使用古怪的Maven运行时版本来完成某些任务。
这是问题吗?还有别的吗?我能解决这个问题吗?
ETA:显然这可能与known issue有关。这很可能是因为我的类路径中有多个Mockito版本(谢谢,Maven: - /)。我似乎有我的房子 - Eclipse现在可以运行测试 - 但不幸的是,该bug已经咬我的哈德森。我必须找出如何从classpath中删除旧的JAR。
良好的呼吁多个版本;我被这个经常烧毁了,我不知道为什么它不是我检查的第一件事情。我现在正在重建;将接受如果这修复它:D – Coderer 2010-12-16 23:26:05