单元测试 class 在 eclipse 中运行旧版本
Unit test class runs old version in eclipse
我的项目中有一个 JUnit 测试 class,它是逐步更新的 - 我每隔几周添加一次测试,有时会修改测试的代码。
令人惊讶的是,当我使用 eclipse JUnit Runner 4 运行 测试 class 时,它 运行 是我的旧代码(更新前)而不是新代码。我可以更改代码、添加或删除测试,但它仍然是 运行 旧代码。
我试图找出问题并 运行 我刚刚编写的单个测试并得到了臭名昭著的 "Unrooted tests" 错误,没有任何堆栈跟踪给我提供问题所在的线索。
我做了一些研究,根据这里的其他一些线程,很多人遇到了这个关于 JUnit 3 \ JUnit 4 兼容性的问题,但这里不是这种情况 - 我用 [=11 注释了我所有的测试=] 而且我不扩展 TestCase
class.
清理/构建所有 eclipse 项目没有帮助。
但是,当我 mvn clean install 我的项目时,这个问题确实会自行解决,但这会花费太多时间。
此外,重命名 class (在 eclipse 中为 Alt+Shift+R)立即将新代码变为 运行,但将其重命名回其原始(有效)名称,将旧代码变为 运行 再次(WTF?)
不胜感激,
10 倍
我自己设法解决了这个问题(灵感来自 Harlard 发表的评论)。
检查我的项目的目标目录后,我注意到其中的 test-类 目录不包含我的测试的二进制文件。
然后我注意到我在 src/test/java 中放错了 类 并将它们放在不符合我项目包结构的包结构中,它们是 src/test/java 的直接子目录.
因此,eclipse 没有将它们放在正确的位置,为它们生成二进制文件的唯一方法是执行 maven 构建。
将我所有的测试 类 重构为正确的包结构后,一切正常。
另一种解决方案是手动删除项目的 "target" 文件夹并重建它。这应该可以解决所有此类问题。
我遇到了同样的问题。这是由于有缺陷的 .classpath。删除此 .classpath 并重新导入项目,生成正确的 .classpath 并修复环境。
我的项目中有一个 JUnit 测试 class,它是逐步更新的 - 我每隔几周添加一次测试,有时会修改测试的代码。
令人惊讶的是,当我使用 eclipse JUnit Runner 4 运行 测试 class 时,它 运行 是我的旧代码(更新前)而不是新代码。我可以更改代码、添加或删除测试,但它仍然是 运行 旧代码。
我试图找出问题并 运行 我刚刚编写的单个测试并得到了臭名昭著的 "Unrooted tests" 错误,没有任何堆栈跟踪给我提供问题所在的线索。
我做了一些研究,根据这里的其他一些线程,很多人遇到了这个关于 JUnit 3 \ JUnit 4 兼容性的问题,但这里不是这种情况 - 我用 [=11 注释了我所有的测试=] 而且我不扩展 TestCase
class.
清理/构建所有 eclipse 项目没有帮助。 但是,当我 mvn clean install 我的项目时,这个问题确实会自行解决,但这会花费太多时间。 此外,重命名 class (在 eclipse 中为 Alt+Shift+R)立即将新代码变为 运行,但将其重命名回其原始(有效)名称,将旧代码变为 运行 再次(WTF?)
不胜感激, 10 倍
我自己设法解决了这个问题(灵感来自 Harlard 发表的评论)。 检查我的项目的目标目录后,我注意到其中的 test-类 目录不包含我的测试的二进制文件。 然后我注意到我在 src/test/java 中放错了 类 并将它们放在不符合我项目包结构的包结构中,它们是 src/test/java 的直接子目录. 因此,eclipse 没有将它们放在正确的位置,为它们生成二进制文件的唯一方法是执行 maven 构建。 将我所有的测试 类 重构为正确的包结构后,一切正常。
另一种解决方案是手动删除项目的 "target" 文件夹并重建它。这应该可以解决所有此类问题。
我遇到了同样的问题。这是由于有缺陷的 .classpath。删除此 .classpath 并重新导入项目,生成正确的 .classpath 并修复环境。