Я сконфигурировал параметризованную сборку Jenkins Job, которая принимает следующий аргумент, называемый "testcases":
-t "Can Get Fake Name" -t "Can call Password"
Это строка, которая должна передаваться роботу через командную строкуисполняемый фреймворк.
Jenkins работает в Linux (Centos 7), и это сценарий сборки, который я написал для достижения своей цели:
robot "${testcases}" myrobottest.robot
Я нашел предложение ${testcases}
здесь , что частично решает мою проблему.
Команда результата на Дженкинсе выглядит следующим образом:
+ robot '-t "Can Get Fake Name" -t "Can call Password"' myrobottest.robot
[ ERROR ] Suite 'myrobottest' contains no tests named ' "Can Get Fake Name" -t "Can call Password"'.
Проблема здесь заключается в том, что я не вижу конечных одинарных кавычек.не знаю, как удалить (или не производить).
Перед использованием записи ${testcases}
я также пытался использовать переменную окружения, такую как $testcases
, но она выдает что-то со многими бесполезными одиночными кавычками.
Любое предложение, пожалуйста?
Я ожидаю, что сгенерированная командная строка будет
robot -t "Can Get Fake Name" -t "Can call Password" myrobottest.robot
, но фактический вывод:
robot '-t "Can Get Fake Name" -t "Can call Password"' myrobottest.robot
EDIT
Я сделал еще одну попытку.Если я изменю строку сценария, как показано ниже:
eval echo robot \${testcases} docker-robot-framework.robot
, я получу следующий консольный вывод.
+ eval echo robot '${testcases}' myrobottest.robot
++ echo robot -t '"Can' Get Fake 'Name"' myrobottest.robot
robot -t "Can Get Fake Name" myrobottest.robot
Я думаю, что я близок к решению, потому что мне нужно только выполнитьтакое eval
выражение (кстати, правильное).