在 IntelliJ 中有一个功能可以在一个文件夹中运行所有单元测试。是否有可能以相同的方式运行所有 main() 方法?
问问题
33 次
1 回答
3
不是我知道的。
包装类的解决方法:
使用方法创建一个类main
并调用main
该方法中的每个方法。
如果这些带有main
方法的类发生了很大变化,您可以使用这个反射库和以下代码来扫描带有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
修饰符也是一个好主意。
于 2019-04-24T15:04:21.613 回答