启动两个Junit测试套件

时间:2016-12-13 23:36:00

标签: java maven unit-testing junit test-suite

我有两个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));
  }
  ......
  }

任何人都可以告诉我立即启动两名选手吗?我尝试使用jvm param'-Dtest',如下所示;

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

但它始终获得最后一个值并执行。是否可以在一个命令中一个接一个地启动?

1 个答案:

答案 0 :(得分:1)

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

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