我正在用并行计算机并行运行一组测试。问题是,当我在jenkins中运行我的构建时,所有的测试类也在运行。
意思是-如果我有两个类-x.class,y.class,我在z.class中并行运行它们,当我在jenkins上运行我的构建时,他运行所有类(x.class,y.class,z.class)。。。那不是我真正的目的。
为了避免这种情况,我使用了-“-dtest=z.class”,现在我只运行我的多线程类。一切都很好,除了一件事-
surefire只为我的z类创建报告。因此,如果z.class触发了2个类,每个类有5个测试,而不是报告10个测试,他只报告1个测试-我的z.class
这是我的密码-
@Test
public void runAllTest() throws ClassNotFoundException {
List<Class<?>> classesList = new ArrayList<Class<?>>();
final ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*")));
final Set<BeanDefinition> classes = provider.findCandidateComponents("xxx.Mypackage.tests");
for (BeanDefinition bean: classes) {
classesList.add(Class.forName(bean.getBeanClassName()));
}
Class<?>[] itemsArray = new Class<?>[classesList.size()];
itemsArray = classesList.toArray(itemsArray);
Result result = JUnitCore.runClasses(new ParallelComputer(true, true), itemsArray);
我的报告-
[main]info org.apache.maven.plugin.surefire.surefireplugin-测试运行:1,失败:0,错误:0,跳过:0
我怎样才能只运行一个类测试来触发多个类测试,并且仍然有一个有效的报告?
谢谢
暂无答案!
目前还没有任何答案,快来回答吧!