gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:46:27 25 4
gpt4 key购买 nike

我的项目中有一个 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倍

最佳答案

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

关于eclipse - 单元测试类在eclipse中运行旧版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com