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

问题描述 投票:0回答:1

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

unit-testing intellij-idea main-method
1个回答
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修饰符的过滤也是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.