Intellij:如何在文件夹中运行所有main()方法?

时间:2019-04-24 14:08:47

标签: unit-testing intellij-idea main-method

在IntelliJ中,有一项功能可以运行文件夹中的所有单元测试。 是否有可能以相同的方式运行所有main()方法?

1 个答案:

答案 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:对staticpublic修饰符进行过滤也是个好主意。