使用参数化Junit测试中的命令行参数或系统属性?

Ste*_*all 4 groovy junit junit4 gradle

我使用此方法来设置参数化数据:

@Parameterized.Parameters
public static Collection<Object[]> getStories() {
        Collection<Object[]> allStories = new ArrayList<Object[]>()
        new File(SPEC_DIRECTORY).eachFileRecurse(FileType.FILES) { file ->
            if (file.getName().endsWith('.story')) {
                Object[] args = [file.getName(), file]
                allStories << args
            }
        }
        return allStories
    }
Run Code Online (Sandbox Code Playgroud)

我用gradle via调用主测试gradle test,但我似乎无法看到系统属性.

如果我使用调用gradle -Dfile=test.story,那么System.getProperty('file')是未定义的.如何将参数传递给此参数化数据构建器?

Pet*_*ser 5

Gradle在单独的JVM中运行所有测试.您必须配置test任务:

test {
    systemProperty "file", "test.story"
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Gradle DSL参考.