gradle - 我想在Gradle脚本中运行多个SOAPUI项目xml

标签 gradle soapui

我想在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/

相关文章:

gradle - 解析 gradle 脚本时如何使用 Groovy CodeVisitorSupport 访问者类?

java - 如何在groovy和SoapUI中生成带有时间戳的新txt文件?

xml - 使用 Groovy 在 SoapUI Pro 中解析 XML 响应

php - 在 PHP 中从 WSDL 网络服务检索数据

java - 提供静态内容 Jetty Jersey Gradle

java - 如何使用 Gradle 构建源 JAR?

gradle - Gradle任务创建目录的zip存档

wcf - 您可以使用 SoapUI 测试受证书保护的 WCF 服务吗?

rest - SoapUI 可以为 REST 项目生成 .wadl 吗?如果是,如何?

java - 无法导入包 org.objectweb.asm