我正在使用eclipse在单个junit(4)测试类中运行测试。班上的测试都运行得很好。然后我添加一个额外的测试,并通过再次在ecplise中运行的测试运行该类。只运行旧的测试。 eclipse没有看到新的测试。没有任何错误或任何错误,就像eclipse正在查看旧版本的测试一样。
如果我使用maven运行测试,一切正常。此外,在我在maven中运行测试后,ecplipse可以正确查看并运行新测试。
任何想法发生了什么?有任何想法如何让ecplipse的测试运行器看到我的新测试用例?
答案 0 :(得分:10)
我有同样的问题。我通过以下方式解决了这个问题:
src/test/java
,输出文件夹设置为
“默认输出文件夹”target/test-classes
目录在此之后,Maven和Eclipse处于同步状态(与Eclipse相比,很快就运行了旧版本的测试,从最后一次Maven编译开始)。
答案 1 :(得分:1)
也许你“只是”需要创建一个新的运行配置。 Eclipse“记住”最新使用的Run配置,如果没有另外说明,则重复它。要确保您有新的运行配置,可以在包浏览器中右键单击测试用例,然后选择Run As | Junit测试。下次你点击播放时,这将是“记住的”运行配置等。
答案 2 :(得分:1)
可能src / test不在Java Build Path中。
开普勒解决方案:
项目 - >构建路径 - >配置构建路径 - >来源 - >添加文件夹
然后选中 src
下 test 对应的框答案 3 :(得分:1)
您可能会发现这可能是由于使用Maven构建(Maven通常构建到' target'文件夹),但Eclipse正在为自己的构建过程使用不同的构建文件夹。最简单的方法是进入Eclipse Project下的目标文件夹(如果使用OSGi,则进入Bundle)并从该目录下删除冲突的子文件夹/类文件;对我而言,这是我的目标"夹。然后让Eclipse重建,一切都应该没问题。
从技术上讲,如果你愿意的话,你可以放弃整个构建/目标文件夹,让Eclipse重建所有内容。
答案 4 :(得分:1)
在回答Ryan Dawe提供的答案时,我发现默认输出文件夹只能设置为一个文件夹,用于构建路径上的所有源文件夹。所以,如果我将输出文件夹更改为target / test-classes,我的src / main / java也在那里输出类。 您可能已经为不同的旧版eclipse编写了此响应,但从Mars.2发布版本开始,我们只能为所有源文件夹创建一个默认输出文件夹。
到目前为止,我发现这个问题的最佳解决方案是将目标/测试类包含为类文件夹,方法是转到Project - >属性 - > Java构建路径 - >图书馆 - >添加Class文件夹。
答案 5 :(得分:0)
您的项目似乎没有重新编译。选择菜单:项目/构建自动或手动执行Boris Pavlocic评论。
答案 6 :(得分:0)
这似乎与junit not using the newest file
相同问题似乎是Eclipse将编译的测试放在错误的文件夹中,可以通过手动指定它们应该在哪里来解决。
答案 7 :(得分:0)
在测试类前添加“test”,如果没有,那么@Test注释并不总是从Eclipse的Junit Test框架中获取。
答案 8 :(得分:0)
这是我解决问题的方法...
注意:这假定您项目的测试默认输出文件夹为target / test-classes,如果没有,则进行相应调整。另外,还要确保在“ JUnit运行配置”下也选择了正确的JUnit版本,并且src / test / java目录是项目的源文件夹,等等。
答案 9 :(得分:0)
这意味着您已经创建了尚未构建的Test类。 构建之后,例如使用“ gradle build”,Eclipse也将找到Test类。 就我而言,我也必须先进行清理。