是否可以从Eclipse中的多个包运行JUnit测试?

时间:2009-01-05 14:16:04

标签: java eclipse testing junit

是否可以同时为多个包运行JUnit测试,而无需手动创建测试套件。

例如,如果我有层次结构:

code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo.bbb

是否可以:

  1. 在code.branchone和后代包中运行所有测试
  2. 运行所有测试,例如code.branchone.aaa和code.branchtwo.bbb
  3. 我在手动创建测试套件时遇到的问题是,当新测试出现时,您可能会忘记添加它们。

7 个答案:

答案 0 :(得分:25)

是的,有可能。对我来说最简单的方法是添加一个测试套件类。它看起来像这样:

package tests;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import tests.message.ATest;
import tests.validator.BTest;
import tests.validator.CTest;
import tests.validator.DTest;

@RunWith(Suite.class)
@SuiteClasses({ ATest.class, 
        BTest.class, 
        CTest.class, 
        DTest.class })
public class AllTests {

}

这将允许您测试您导入的任何类,无论它在哪个包中。要在eclipse中运行它,只需右键单击AllTests类并将其作为JUnit测试运行。然后它将运行您在@SuiteClasses中定义的所有测试。

这也适用于链接来源,我一直都在使用它。

答案 1 :(得分:19)

另一种方式:

单击下图中红色矩形表示的黑色三角形(在Eclipse中,不在此处:)。

enter image description here

然后打开运行配置,创建一个新配置,然后设置“运行所有测试...”,如下图所示。

enter image description here

答案 2 :(得分:13)

可能不完全是原始问题,但您只需右键单击项目即可轻松运行整个项目的所有测试 - >运行为JUnitTest。不要担心带注释的类所在的位置,这将被扫描。

如果应用于test-src-folder或带有子包的包,则不起作用。真的很遗憾-.-

答案 3 :(得分:3)

我相信你可以稍微调整一下。创建CLASSES_DIR属性的集合并在findClasses方法中循环它。 (junit4)

http://burtbeckwith.com/blog/?p=52

答案 4 :(得分:1)

我认为您可以将所有测试包添加到单个目录中。如果右键单击此目录,则应该可以找到“run as - > JUnit test”选项。这将运行目录中包含的所有测试,并将捕获您添加的任何内容。任何新测试都会与其他测试一起放在那里,无论你拥有什么包名都没关系。希望有所帮助

答案 5 :(得分:1)

当然,右键单击所需的包,然后选择Run As ... JUnit Test

答案 6 :(得分:1)

在Eclipse中,在调试/运行配置中,您有以下选项:

  1. 运行单个测试
  2. 在所选项目,包或源文件夹中运行所有测试
  3. 我认为在这种情况下,第二个选项是你的朋友。