Java 在Eclipse中从多个项目运行JUnit测试
我可能是疯了,但今天早上当我升级到EclipseKepler时,我试图同时为多个Eclipse项目运行单元测试,但失败了。我选择了多个项目,打开右键菜单,“运行方式…”选项消失了 “该死的开普勒!”我想,然后启动了我的老朱诺装置,让自己相信行为已经改变了。然而,它在那里也不起作用 我现在怀疑我的理智,这是否真的可能。堆栈溢出问题和其他问题表明,这是一项困难的任务,如果不是不可能的话。然而,我确信我在最近的过去做过这件事,这让我有点慌乱 所以。。。这在开普勒或朱诺都有可能吗?有人能推荐一个流行的插件来启用这个功能吗(我错误地认为这是默认行为)Java 在Eclipse中从多个项目运行JUnit测试,java,eclipse,junit,Java,Eclipse,Junit,我可能是疯了,但今天早上当我升级到EclipseKepler时,我试图同时为多个Eclipse项目运行单元测试,但失败了。我选择了多个项目,打开右键菜单,“运行方式…”选项消失了 “该死的开普勒!”我想,然后启动了我的老朱诺装置,让自己相信行为已经改变了。然而,它在那里也不起作用 我现在怀疑我的理智,这是否真的可能。堆栈溢出问题和其他问题表明,这是一项困难的任务,如果不是不可能的话。然而,我确信我在最近的过去做过这件事,这让我有点慌乱 所以。。。这在开普勒或朱诺都有可能吗?有人能推荐一个流行的插
背景:我有一个通过m2e管理的多模块Maven项目,希望我可以选择几个项目并运行所有的单元测试。您不能在Eclipse中为多个项目运行测试,至少使用普通的运行程序。然而,有许多选择:
Infinitest可能会运行所有项目中的所有测试。您可以使用在多个项目中执行JUnit测试。 一般来说,您需要做的是:
公共类MySuite
它包括一个分步示例和一个代码示例。奇怪的是,安装C developer工具为您提供了一个可以运行多个组的功能。请参见如果您不使用关联菜单,而是使用键盘快捷键(默认值=
Alt-Shift-X
T
),则会出现以下对话框:
这是一个关于Eclipse为什么不在菜单中显示该选项的提示——它认为没有测试。这显然是错误的
通过挖掘(第160-191行),我发现:
private void launch(Object[] elements, String mode) {
try {
IJavaElement elementToLaunch= null;
if (elements.length == 1) {
...
}
if (elementToLaunch == null) {
showNoTestsFoundDialog();
return;
}
仅当您选择一个测试类时,它才起作用
菜单选项可见性由org.eclipse.jdt.junit
plugin配置()控制,并且存在相同的问题(第221-234行):
开头的
位用作选择器,它的意思是相同的:必须选择一个项目,否则菜单项将不显示
我想我们已经发现了问题:)
我还检查了这两个文件的历史记录,它们自2006年9月以来一直没有更改。因此,如果您使用较新的版本成功地做到了这一点,那么您很可能安装了某种插件来实现这一点。您是否仍有可用的运行配置?如果是这样,只需为它创建一个配置并运行它。@JREN抱歉,是的,“运行配置…”选项仍然存在。但是如果我这样做,我只能为一个项目运行测试,而不能为多个项目运行测试。应该有一个单选按钮,上面写着“运行所选项目、包或源文件夹中的所有测试:”如果您选择了两个项目,它应该为这两个项目运行所有单元测试。它至少对我有用:-/。我正在使用EclipseJuno@JREN,你能详细描述一下你是怎么做到的吗?选择。。。按钮不允许多选,您只能选择一个项目、包或文件夹。对应的eclipse错误:
<contextualLaunch>
<enablement>
<with variable="selection">
<count value="1"/>
<iterate>
<adapt type="org.eclipse.jdt.core.IJavaElement">
<test property="org.eclipse.jdt.core.isInJavaProject"/>
<test property="org.eclipse.jdt.core.hasTypeOnClasspath" value="junit.framework.Test"/>
<test property="org.eclipse.jdt.junit.canLaunchAsJUnit" forcePluginActivation="true"/>
</adapt>
</iterate>
</with>
</enablement>
</contextualLaunch>