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。有指针吗?可能是