我有两个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
但它始终获得最后一个值并执行。是否可以在一个命令中一个接一个地启动?
答案 0 :(得分:1)
使用@Suite
注释创建一个包含您要运行的两个套件的新套件:
@RunWith(Suite.class)
@Suite.SuiteClasses({
AllTestsInParallel.class,
AllTestsInSequence .class
})
public class AllTestsSuite {
}