单元测试类在 eclipse 中运行旧版本

2023-11-25

我的项目中有一个 JUnit 测试类,它是增量更新的 - 我每隔几周添加一次测试,有时会修改测试的代码。

令人惊讶的是,当我使用 eclipse JUnit Runner 4 运行测试类时,它运行我的旧代码(更新之前),而不是新代码。我可以更改代码,添加或删除测试,但它仍然运行旧代码。

我试图隔离问题并运行我刚刚编写的单个测试,但出现了臭名昭著的“无根测试”错误,没有任何堆栈跟踪来让我知道问题是什么。

JUnit runner response. test7() is indeed within the compiled test class

我做了一些研究,根据这里的其他一些线程,很多人都遇到了有关 JUnit 3 \ JUnit 4 兼容性的问题,但这里的情况并非如此 - 我用注释注释了我的所有测试@Test我不会延长TestCase class.

清理/构建所有 eclipse 项目没有帮助。 但是,当我 mvn clean install 我的项目时,这个问题确实可以解决,但这需要太多时间。 另外,重命名类(在 Eclipse 中为 Alt+Shift+R)可以让新代码立即运行,但是将其重命名回其原始(有效)名称,可以让旧代码再次运行(WTF?)

帮助将不胜感激, 10倍


我设法自己解决了这个问题(受到哈拉德贡献的评论的启发)。 检查我的项目的目标目录后,我注意到其中的测试类目录不包含我的测试的二进制文件。 然后我注意到我把类放在了 src/test/java 中,并将它们放入了一个不符合我项目的包结构的包结构中,它们是 src/test/java 的直接子目录。 因此,Eclipse 没有将它们放在正确的位置,为它们生成二进制文件的唯一方法是执行 Maven 构建。 将所有测试类重构为正确的包结构后,一切都运行良好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试类在 eclipse 中运行旧版本 的相关文章

随机推荐