一尘不染

分组JUnit测试

java

有什么方法可以在JUnit中对测试进行分组,以便我只能运行某些组?

还是可以注释一些测试然后全局禁用它们?

我正在使用 JUnit 4 ,但不能使用TestNG。

编辑: @RunWith和@SuiteClasses很好用。但是是否可以仅在测试类中的某些测试中进行这样的注释?还是我必须注释整个测试课程?


阅读 312

收藏
2020-09-08

共1个答案

一尘不染

您要在测试类中对测试进行分组还是要对测试类进行分组?我将假设后者。

这取决于您如何运行测试。如果您由Maven运行它们,则可以精确指定要包含的测试。有关此信息,请参见Maven
surefire文档

不过,总的来说,我要做的是拥有一棵测试套件树。JUnit 4中的测试套件如下所示:

 @RunWith(Suite.class)
 @SuiteClasses({SomeUnitTest1.class, SomeUnitTest2.class})
 public class UnitTestsSuite {
 }

因此,也许我有一个FunctionTestsSuite和UnitTestsSuite,然后是一个包含其他两个的AllTestsSuite。如果在Eclipse中运行它们,您将获得一个非常漂亮的层次结构视图。

这种方法的问题在于,如果您想以一种以上不同的方式对测试进行切片,那将很繁琐。但这仍然是可能的(例如,您可以拥有一组基于模块进行切片的套件,然后对测试类型进行另一切片)。

2020-09-08