在 Groovy 脚本中执行 .jar

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


出于测试目的,我创建了一个 .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”,并且我没有.jar像在 git 命令中那样在 Katalon 控制台中获得控制台输出。


潇潇雨雨
浏览 312回答 1
1回答

慕勒3428872

找到了一种方法来做到这一点。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())        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java