我正在尝试在 Java 简介类(class)中自动实现一种同时对多个学生的文件进行评分的方法。
假设满足以下条件,如何对文件夹中的所有文件运行相同的测试:
- 所有文件都存在于同一文件夹中(无子文件夹)
- 所有文件都有 .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
最佳答案
从 Java11 开始,您可以 run single java classes without compiling .
因此,如果您可以自由使用 Java 11,则可以 loop over the java files在具有给定输入的文件夹中,然后 check the program output against expectations.
使用许多其他脚本解决方案也可以实现同样的效果,例如 ant、make、gradle、python、ruby...
关于java - JUnit:在多个目标类上运行相同的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56369772/