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