JUnit 4测试套件

Ada*_*lor 97 java junit test-suite

如何使用JUnit 4创建测试套件?

我见过的所有文档似乎都不适合我.如果我使用Eclipse向导,它不会让我选择我创建的任何测试类.

Joa*_*uer 146

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

@RunWith(Suite.class)
@Suite.SuiteClasses({TestClass1.class, TestClass2.class})
public class TestSuite {
  //nothing
}
Run Code Online (Sandbox Code Playgroud)


cmc*_*nty 62

你可以像这样创建一个套件.例如,AllTest套件看起来像这样.

package my.package.tests;

@RunWith(Suite.class)
@SuiteClasses({
    testMyService.class,
    testMyBackend.class,
    ...
})

public class AllTests {}
Run Code Online (Sandbox Code Playgroud)

现在您可以通过几种不同的方式运行它:

  1. 右键单击并在Eclipse中作为Junit测试运行
  2. 创建一个可运行的Java应用程序; Main class ='org.junit.runner.JUnitCore'和Args ='my.package.tests.AllTests'
  3. 从命令行运行:

    $ java -cp build/classes/:/usr/share/java/junit4.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore my.package.tests.AllTests
    
    Run Code Online (Sandbox Code Playgroud)


duf*_*ymo 9

我认为TestSuite已经失宠了.这可能是4.x之前的风格,但现在并不是我所知道的.

我只是注释我想要的测试,然后运行该类.所有带注释的测试都会运行.我可能会使用Ant,但大部分时间我都有IntelliJ为我运行它们.

  • 我可能是错的,但我认为当我们需要指定测试顺序时,TestSuite仍然很好,特别是在自动化集成测试中,测试较小的场景应该在更复杂的场景之前. (11认同)
  • 如果您有大量的测试,不同的功能区域/模块,区分"核心"和辅助/慢速/昂贵的非核心测试 - 出于上述任何原因 - 您可以将测试结构化为TestSuite. (6认同)