我想在Gradle脚本中运行多个soapui项目。保留的SOAPUI项目文件位于以下位置: d:/soapui/projects/path/a.xml,b.xml等
将有任何Gradle脚本将进入上述位置并使用testrunner.bat逐个执行每个项目
答案 0 :(得分:1)
作为@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
用于传递项目目录的参数。
最近,我写了一个关于如何编写 gradle任务以运行 SOAPUI 的答案,如果你想要更多details here,那么也可以使用它。
希望这有帮助,