0

在我的 Java 课程介绍中,我正在尝试自动化一种方法来一次对多个学生的文件进行评分。

假设以下条件为真,我如何对文件夹中的所有文件运行相同的测试:

  • 所有文件都存在于同一个文件夹中(没有子文件夹)
  • 所有文件都有一个 .java 扩展名
  • 所有文件名都是重要的标识符
  • 每个文件中的代码都满足相同的要求
    SayHelloWorld
    |-bsmithSayHelloWorld.java
    |-athomasSayHelloWorld.java
    |-cjenkinsSayHelloWorld.java

我对 JUnit 很满意,但过去我只通过 IntelliJ 以单文件、笨拙的方式使用它。

这是我要测试的简单示例文件:

public class Main {

    public static void main(String[] args) {
        System.out.println(sayHello());
    }
    public static String sayHello(){
        return "hello Java";
    }
}

我真的希望能够对给定文件夹中存在的所有 .java 文件进行自动化单元测试,并将结果输出到我可以使用的东西(控制台、文件等)。

可能的输出可能如下所示:

bsmithSayHelloWorld helloWorldTest: pass
athomasSayHelloWorld helloWorldTest: fail
cjenkinsSayHelloWorld  helloWorldTest: pass
4

1 回答 1

0

从 Java11 开始,您无需编译即可运行单个 java 类

因此,如果您可以自由使用 Java 11,您可以使用给定的输入循环遍历文件夹中的 java 文件,然后检查程序输出是否符合预期。

使用许多其他脚本解决方案也可以实现相同的目标,例如 ant、make、gradle、python、ruby ......

于 2019-05-30T02:04:10.450 回答