JUnit:对多个目标类运行相同的测试

时间:2019-05-29 23:28:14

标签: java junit parametrized-testing

在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

1 个答案:

答案 0 :(得分:0)

从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,...