Перейдите в папку и запустите sendEmail из CMD - PullRequest
0 голосов
/ 24 августа 2018

Я создаю простую систему отчетов по электронной почте для моих автоматических тестов (в 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), выполняется только первая строка.

Итак, как я могу заставить это работать?

1 Ответ

0 голосов
/ 24 августа 2018

Вы говорите cmd, чтобы снова открыть cmd и cd, что и делает в новом окне ... при выходе из нового окна он попытается обработать sendmail из рабочего каталога, где вы запустили командный файл из. Вместо этого просто попробуйте cd /d без cmd /c или /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'
...