启动两个 Junit 测试套件

Start two Junit test suites

我有两个 junit 测试套件,第一个是 AllTestInParallel 并在多个线程中实现 运行。第二个是 AllTestsInSequence,它非常慢,我需要在单线程中 运行。最后我需要同时启动两个测试套件。我的意图是先 运行 慢速测试,然后 运行 快速测试,反之亦然。

  @RunWith(MultiThreadedClasspathRunner.class)
  public class AllTestsInParallel { 
  }

  public class MultiThreadedClasspathRunner extends Suite {
  public MultiThreadedClasspathRunner(Class<?> klass, RunnerBuilder builder)    throws InitializationError {
    super(builder, MultiThreadedClasspathRunner.getTestClassesInProjectClassPath(klass));
  }
  ......
  }

  @RunWith(SingleThreadedClasspathRunner.class)
  public class AllTestsInSequence { 
  }

  public class SingleThreadedClasspathRunnerextends Suite {
  public SingleThreadedClasspathRunner(Class<?> klass, RunnerBuilder builder)    throws InitializationError {
    super(builder, SingleThreadedClasspathRunner.getTestClassesInProjectClassPath(klass));
  }
  ......
  }

任何人都可以让我知道同时启动两个 运行ners 吗?我尝试使用 jvm param '-Dtest' 如下;

     -Dtest=com.selenium.runner.AllTestsInSequence,com.selenium.runner.AllTestsInParallel

但它总是获取最后一个值并执行。是否可以一个命令一个接一个地启动?

使用 @Suite 注释创建一个包含您想要的两个套件的新套件 运行:

@RunWith(Suite.class)
@Suite.SuiteClasses({
   AllTestsInParallel.class,
   AllTestsInSequence .class
})
public class AllTestsSuite {   
}