在 Groovy 脚本中执行 .jar

Execute a .jar in a Groovy script

我正在使用 groovy 脚本的脚本模式使用 Katalon Studio 创建一个测试用例。我需要 groovy 脚本来执行 Katalon 项目文件夹中的 .jar

出于测试目的,我创建了一个 .jar,它创建了一个名为 "the-file-name" 的文件并在控制台中打印了一条消息。

我在 Groovy 中找到了执行命令的方法:

def command = "git --version"

def proc = command.execute()

proc.waitFor()

println proc.in.text

这会在 Katalon 控制台中打印 git 的版本。所以我猜想放置 "java -jar test.jar" 就足够了,但即使执行似乎正确结束,.jar 似乎也没有做任何事情。可以肯定的是,我使用 de Windows 命令行执行了相同的 .jar,它运行良好。文件已创建,消息已写入控制台。

执行时,Katalon 控制台就像正确执行一样。没有错误消息,执行被标记为成功,但测试文件 "the-file-name" 无处可寻,我没有像 git命令。

找到方法了。

public class CustomKeywords {

    @Keyword
    def runBatch(String path) {
        def cmd = "cmd /c \"java -jar \"" + path + "\"\"";
        runCmd(cmd)
    }

    def runCmd(String cmd) {
        KeywordUtil.logInfo("cmd: ${cmd}")

        def proc = cmd.execute();
        def outputStream = new StringBuffer();
        def errStream = new StringBuffer()
        proc.waitForProcessOutput(outputStream, errStream);
        println(outputStream.toString());
        println(errStream.toString())

        if(proc.exitValue() != 0){
            KeywordUtil.markFailed("Out:" + outputStream.toString() + ", Err: " + errStream.toString())
        }
    }

}