我想在Gradle脚本中运行多个soapui项目。 SOAPUI项目文件保存在以下位置:
d:/soapui/projects/path/a.xml、b.xml等
将有任何Gradle脚本进入上述位置,并使用testrunner.bat逐个执行每个项目。
最佳答案
作为@RaGe注释,您可以使用gradle SOAPUI plugin。但是,如果您正在寻找一种更自定义的方式,则可以按照以下步骤进行操作。
您可以在Gradle上生成一个任务,以执行testrunner来运行您的SOAPUI项目。然后,您可以为目录路径中的每个项目动态创建一个任务,并使用.depends
可以使在调用特定任务时调用所有这些动态生成的任务。
您的build.gradle可能类似于:
// task to execute testrunner
class SoapUITask extends Exec {
String soapUIExecutable = '/SOAPUI_HOME/bin/testrunner.bat'
String soapUIArgs = ''
public SoapUITask(){
super()
this.setExecutable(soapUIExecutable)
}
public void setSoapUIArgs(String soapUIArgs) {
this.args = "$soapUIArgs".trim().split(" ") as List
}
}
// empty task wich has depends to execute the
// ohter tasks
task executeSOAPUI(){
}
// get the path where are your projects
def projectsDir = new File(project.properties['soapuiProjectsPath'])
// create tasks dynamically for each project file
projectsDir.eachFile{ file ->
if(file.name.contains('.xml')){
// create the tasks
task "executeSOAPUI${file.name}"(type: SoapUITask){
println "execute project ${file.name}"
soapUIArgs = ' "' + file.getAbsolutePath() +'"'
}
// make the depends to avoid invoke each task one by one
executeSOAPUI.dependsOn "executeSOAPUI${file.name}"
}
}
要调用它,您可以使用以下命令来完成:
gradle executeSOAPUI -PsoapuiProjectsPath=d:/soapui/projects/path/
请注意,
-P
用于传递项目dir的参数。最近,我写了一个关于如何编写gradle任务以运行SOAPUI的答案,如果您想查看更多details here,也可以使用util。
希望这可以帮助,
关于gradle - 我想在Gradle脚本中运行多个SOAPUI项目xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890631/