我有一些独立的测试代码(如果需要的话,请使用Spock),我需要将参数传递给它。
当前,我有一个最小的build.gradle
脚本,该脚本利用了gradle将自动生成test
任务的事实,因此,我使用以下子句将参数作为系统属性传递给测试:
test {
systemProperties = [serviceName:serviceName]
}
这样,我可以将参数作为项目参数传递给Gradle,例如
gradle -PserviceName=SomeServiceName test
确实可以,但是我对此不太满意。只有已知数量的有效参数值,因此我想为用户预定义这些参数值,最好将其作为单独的Gradle任务,例如能够运行:
gradle testSomeService
gradle testSomeOtherService
我将在
build.gradle
的何处定义这些任务,以将属性设置为给定值,然后调用test
。有没有一种“不错”的方式来做到这一点?
最佳答案
您可以设置以下不同的测试任务:
["serviceA", "serviceB", "serviceC"].each{ serviceName ->
task("${serviceName}Test", type:Test){
group = "Service Test"
systemProperties = [serviceName:serviceName]
}
}
现在,您对每个服务都有一个明确的测试任务。这些任务可以通过运行
gradle tasks
来发现:Service Test tasks
------------------
serviceATest
serviceBTest
serviceCTest
关于gradle - Gradle中的参数化测试任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29120516/