运行 具有多个属性的相同 junit 套件

Running same junit suite with multiple properties

我有一个 junit 测试套件,我需要 运行 几个不同的属性,这样我就只能有 1 个测试套件,但是 运行 它有好几次,但数据不同它。

我可以让测试套件从属性文件中读取属性,我可以使用环境变量更改它,并将其与属性文件的文件名相匹配:

$ export OPERATOR=myoper

在我的 java 代码中:

        String operator = System.getenv("OPERATOR");
        //Reading properties file in Java example
        Properties props = new Properties();
        //String propertiesFile = "src/test/resources/data" + operator + ".properties";
        FileInputStream fis = new FileInputStream("src/test/resources/data" + operator + ".properties");

        //loading properites from properties file
        props.load(fis);

但我似乎无法找到一种方法来迭代我可能拥有的所有属性文件,所以,如果我说,10 个不同的属性文件,那么测试套件会在所有不同的集合中执行那么多次文件的属性。

我正在使用 maven 和 junit4 运行 套件,使用命令:

mvn test -Dtest=TestSuite#testCase

我将从 Jenkins 作业中启动命令。

提前致谢!

经过一番研究,我想到了以下命令:

$ export OPERATOR=dataWeb*
$ for f in src/test/resources/$OPERATOR ; do export OPERATOR=$(basename "$f" | cut -d. -f1) && mvn test -Dtest=$TESTSUITE#$TESTCASE -q ; done

它采用操作员的环境变量,由测试套件采用到 select 相应的属性文件,在具有该模式的目录中迭代尽可能多的文件。

希望对遇到同样情况的其他人有所帮助。也许这是使用我不知道的 Junit + Maven + Jenkins 组合实现此目的的更好方法。