我有一些独立的测试代码(使用Spock,以防万一),我需要将参数传递给。
目前,我有一个最小build.gradle
脚本,它利用了gradle将自动生成test
任务这一事实,因此我使用以下子句将我的参数作为系统属性传递给测试:
test {
systemProperties = [serviceName:serviceName]
}
有了这个,我可以将参数作为项目参数传递给Gradle,例如
gradle -PserviceName=SomeServiceName test
这确实有效,但我对此并不满意。只有已知数量的有效参数值,所以我想为用户预先定义这些参数值,理想情况下是单独的Gradle任务,例如:能够运行:
gradle testSomeService
gradle testSomeOtherService
我的build.gradle
中我将定义这些任务以将属性设置为给定值,然后调用test
。有没有'好'的方法呢?
答案 0 :(得分:3)
您可以设置不同的测试任务:
["serviceA", "serviceB", "serviceC"].each{ serviceName ->
task("${serviceName}Test", type:Test){
group = "Service Test"
systemProperties = [serviceName:serviceName]
}
}
现在,您为每项服务都有一个明确的测试任务。运行gradle tasks
:
Service Test tasks
------------------
serviceATest
serviceBTest
serviceCTest