【问题标题】:Intellij: How to run all main() methods in a folder?Intellij:如何在文件夹中运行所有 main() 方法?
【发布时间】:2019-04-25 03:24:29
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我不知道。

    包装类的解决方法:

    使用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 修饰符也是一个好主意。

    【讨论】:

      猜你喜欢
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      相关资源
      最近更新 更多