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

Groovy 使用参数化Junit测试中的命令行参数或系统属性?,groovy,junit,junit4,gradle,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 -

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

@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
    }
@Parameterized.Parameters
公共静态集合getStories(){
集合allStories=newarraylist()
新文件(SPEC_目录).eachFileRecurse(FileType.FILES){File->
if(file.getName().endsWith('.story')){
对象[]args=[file.getName(),file]

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

test {
    systemProperty "file", "test.story"
}

有关更多信息,请参见。

,以满足任何初学者(如我自己)对这个问题的兴趣;我想明确指出,gradle测试任务中的systemProperty只是将系统属性传递给测试jvm

test{
systemProperty 'Chrome', 'Browser' }   
您将无法通过“System.getProperty(“Browser”)”访问junit测试中的属性。相反,它需要与命令gradle test-DBrowser=Chrome耦合

上述案例仅为一个说明,使用以下内容可能有意义:

test{
    systemProperty 'Chrome', System.getProperty('Browser') } 
连同

gradle test -DBrowser=Chrome

这在里程碑9中似乎不再起作用了。这发生了变化吗?我认为这里没有任何变化。你绝对确定问题不在其他地方吗?问题在其他地方。呃。@PeterNiederwieser-以上似乎对我不起作用,我在使用juint 4.12,我在gradle.build文件-test{systemProperty“Browser”中使用它,“Chrome”}并且我尝试通过system.getProperty(“Browser”)在junit测试中访问system属性。但是我总是将值设置为null。有指针吗?可能是