Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中从多个项目运行JUnit测试_Java_Eclipse_Junit - Fatal编程技术网

Java 在Eclipse中从多个项目运行JUnit测试

Java 在Eclipse中从多个项目运行JUnit测试,java,eclipse,junit,Java,Eclipse,Junit,我可能是疯了,但今天早上当我升级到EclipseKepler时,我试图同时为多个Eclipse项目运行单元测试,但失败了。我选择了多个项目,打开右键菜单,“运行方式…”选项消失了 “该死的开普勒!”我想,然后启动了我的老朱诺装置,让自己相信行为已经改变了。然而,它在那里也不起作用 我现在怀疑我的理智,这是否真的可能。堆栈溢出问题和其他问题表明,这是一项困难的任务,如果不是不可能的话。然而,我确信我在最近的过去做过这件事,这让我有点慌乱 所以。。。这在开普勒或朱诺都有可能吗?有人能推荐一个流行的插

我可能是疯了,但今天早上当我升级到EclipseKepler时,我试图同时为多个Eclipse项目运行单元测试,但失败了。我选择了多个项目,打开右键菜单,“运行方式…”选项消失了

“该死的开普勒!”我想,然后启动了我的老朱诺装置,让自己相信行为已经改变了。然而,它在那里也不起作用

我现在怀疑我的理智,这是否真的可能。堆栈溢出问题和其他问题表明,这是一项困难的任务,如果不是不可能的话。然而,我确信我在最近的过去做过这件事,这让我有点慌乱

所以。。。这在开普勒或朱诺都有可能吗?有人能推荐一个流行的插件来启用这个功能吗(我错误地认为这是默认行为)


背景:我有一个通过m2e管理的多模块Maven项目,希望我可以选择几个项目并运行所有的单元测试。

您不能在Eclipse中为多个项目运行测试,至少使用普通的运行程序。然而,有许多选择:

  • 创建一个运行所有内容的ant/maven脚本
  • 如果希望在每次保存时运行测试,可以使用
  • 从无限的位置:

    Infinitest是Eclipse和IntelliJ的一个连续测试插件。每次对源代码进行更改时,Infinitest都会运行所有可能因这些更改而失败的测试


    Infinitest可能会运行所有项目中的所有测试。

    您可以使用在多个项目中执行JUnit测试。 一般来说,您需要做的是:

  • 根据要测试的所有项目创建Eclipse项目
  • 写一个组曲:

    @RunWith(ClasspathSuite.class)
    公共类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>