我的项目中有一个JUnit测试类,它是逐步更新的 - 我每隔几周添加一次测试,有时修改测试代码。令人惊讶的是,当我使用eclipse JUnit Runner 4运行测试类时,它运行我的旧代码(更新之前)而不是新代码。我可以更改代码,添加或删除测试,但它仍然运行旧代码。单元测试类在eclipse中运行旧版本
我试图找出问题并运行我刚刚编写的单个测试,并且在没有任何堆栈跟踪的情况下得到臭名昭着的“Unrooted tests”错误,以便让我知道问题所在。
我做了一些研究,并根据这里的几个其他线程,很多人都遇到过这个问题,关于JUnit的3 \ JUnit 4中的兼容性,但在这里,这是不是这样的 - 我标注了所有的考试与@Test
,我不扩展TestCase
类。
清理/建立所有的eclipse项目并没有帮助。 但是,这个问题在我干净安装我的项目时会自行工作,但这需要太多时间。 此外,重命名类(在eclipse中的Alt + Shift + R)获取新代码立即运行,但将其重命名回其原始(和有效)名称,获取旧代码再次运行(WTF?)
帮助,将不胜感激, 10x
如果它运行的是旧代码,它**有**旧代码,无论是在源代码或编译。你是否有旧的代码,甚至可能是在正好在类路径中的.jar中? – Harald
我想我在某个地方,但假设eclipse已经编译它(它做了),是不是日食亚军应该运行它被指示运行的代码? – KidCrippler
是否有可能以Eclipse的配置方式让测试运行器使用'target'下的编译类,但Eclipse编译器正在输出到不同的文件夹(默认情况下是'bin')?这可以解释为什么Maven构建解决了这个问题。 – sisyphus