Eclipse中Junit测试无法启动

4

我对eclipse和junit测试都不太熟悉,所以这可能是一个非常愚蠢的问题...

当我尝试通过点击"Run As" -> "JUnit Test"来运行我的junit测试时,什么也没有发生。控制台为空,JUnit选项卡没有显示任何内容,在进度选项卡中出现了一条消息“Launching Finished at . communication does not exist”。

这是什么意思?当我在项目上运行“clean package”时,未选中“Skip tests”,它会运行测试,并且所有测试都通过了。但我不喜欢以这种方式运行测试。这更耗费时间,而且我无法像通过“Run As” -> “JUnit Test”运行测试时一样获得有关测试的详细信息。

有任何想法是什么出了问题吗?我已经尝试过谷歌“communication does not exist”消息,但没有结果。

更新:我做了以下测试,只是为了检查junit是否有效:

@Test
public void myTest() {
    assertTrue(true  );
}

当我在运行配置中未选中“跳过测试”选项并运行clean package时,测试运行良好。也就是说,我可以得到输出:
运行中 测试运行:1,失败:0,错误:0,跳过:0,耗时:0秒
当我更改测试为assertTrue(false)时,它按预期失败,并且从clean package的输出中可以看到它失败了,并附带有堆栈跟踪信息。
右键单击测试(和类名,我已尝试过两者),唯一发生的事情是在进度和JUnit选项卡中,如下图所示:

JUnig tab

Progress tab

哎呀,看起来图片由于某些原因无法打开。但总体来说,在Junit选项卡中,没有任何显示,只是显示运行次数为0/0,错误次数为0,失败次数为0,除此之外什么都没有。在进度选项卡中,我会收到“启动(08:13完成)”的消息,并在下一行上看到“通信不存在”的提示。


1
你的断言是否启用了?它们默认是禁用的。在你的虚拟机参数选项卡中输入“-ea”并查看是否有所帮助。 - Faheem
我不确定什么是断言(assertions)... 我在运行配置的VM参数中加入了-ea,但似乎没有任何变化。我仍然得到相同的结果。 - Bugle
1
Junit类已经编译并包含在目标文件夹中了吗?有时我在Eclipse中使用Junit测试时会出现NoClassDefError错误,但通常运行'mvn clean install'命令可以解决这个问题,然后Eclipse就能够运行它们了。 - Pete
该类已经编译并包含在jar文件中。 - Bugle
1
注意!Junit通过mvn工作。不要询问异常。 - Grim
显示剩余4条评论
1个回答

2
在我的情况下,在运行配置中,我将其设置为junit4,运行良好。

enter image description here


默认情况下,JUnit 5会被使用(Jupiter版本)。 - Dexter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接