【发布时间】:2019-04-25 03:24:29
【问题描述】:
在 IntelliJ 中,有一个功能可以在一个文件夹中运行所有单元测试。 是否有可能以相同的方式运行所有 main() 方法?
【问题讨论】:
标签: unit-testing intellij-idea main-method
在 IntelliJ 中,有一个功能可以在一个文件夹中运行所有单元测试。 是否有可能以相同的方式运行所有 main() 方法?
【问题讨论】:
标签: unit-testing intellij-idea main-method
我不知道。
包装类的解决方法:
使用main 方法创建一个类并调用该方法中的每个main 方法。
如果这些带有main 方法的类变化很大,您可以使用这个Reflection Library 和以下代码来扫描带有main 方法的类:
Reflections reflections = new Reflections("your.package.with.main.classes");
Set<Class<? extends Object>> allClasses =
reflections.getSubTypesOf(Object.class);
allClasses 集合包含该包中的所有类。
以下代码将过滤具有main 方法的类:
Set<Class> mainClasses = allClasses.stream()
.filter(clazz ->
Arrays.stream(clazz.getMethods())
.anyMatch(method ->
method.getName().equals("main")))
.collect(Collectors.toSet());
调用main 方法应该不再是问题了。
PS:过滤static 和public 修饰符也是一个好主意。
【讨论】: