0

我正在为我的自动化测试(在Katalon Studio中)构建一个简单的电子邮件报告系统。

当测试失败时,使用sendEmail发送电子邮件。

    if (GlobalVariable.testSuiteStatus=='FAILED'){
      String bf = RunConfiguration.getProjectDir() + '/' + 'email.bat'
      Process p = Runtime.getRuntime().exec(bf)
    }

Email.bat 包含:

cmd /c start cmd /k cd c:\\Program Files\\sendEmail-v156
sendEmail.exe -f sender@email.com -t receiver@email.com -s smtp.server.com:587 -xu myUsername -xp myPassword -m 'Test report text'

每次运行时(或者当我只是双击 bat 文件时),只有第一行被执行。

那么,我怎样才能使这项工作?

4

1 回答 1

1

您正在告诉 cmd 再次打开 cmd cd,这就是它在新窗口中所做的事情。当您退出新窗口时,它将尝试sendmail从您启动批处理文件的工作目录进行处理。相反,只需尝试cd /d不使用cmd /cor/k并直接从批处理中运行可执行文件:

@echo off
cd /d  "c:\Program Files\sendEmail-v156"
start "" /wait sendEmail.exe -f sender@email.com -t receiver@email.com -s smtp.server.com:587 -xu myUsername -xp myPassword -m 'Test report text'
于 2018-08-24T10:00:19.593 回答