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

2022-08-31 19:55:37

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

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

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

是否可以:

  1. 在 code.branchone 和后代包中运行所有测试
  2. 在 say code.branchone.aaa 和 code.branchtwo.bbb 中运行所有测试

我在手动创建测试套件时看到的问题在于,当新测试出现时,您可能会忘记添加它们。


答案 1

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

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

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


答案 2

另一种方式:

单击下图中红色矩形表示的黑色三角形(在您的Eclipse中,不是在这里:)。

enter image description here

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

enter image description here