在IntelliJ中,有一个功能可以在文件夹中运行所有单元测试。是否有可能以相同的方式运行所有main()方法?
不是我知道的。
包装类的解决方法:
使用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
修饰符的过滤也是一个好主意。