Синтаксис для использования ключевого слова Run Process в RobotFramework - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть следующая папка Layout

-- Keywords
-- Tests
  -- MyTest.robot
-- PythonLibraries
  -- MyPythonScript.py
-- Results

Когда я вручную перехожу к папке PythonLibraries и запускаю следующую команду, мой скрипт работает, и функция запускается как обычно, принимая аргумент 'Test123'.

python -c 'import MyPythonScript; MyPythonScript.My_Function();' Test123

Сейчас я пытаюсь ввести это в MyTest.robot в моем RobotFramework с использованием библиотеки процессов.Я попытался использовать оба «Выполнить процесс» и «Начать процесс» без удачи.Я знаю, что мне нужно включить некоторую конфигурацию, чтобы указать сценарий на мою папку PythonLibraries.Я также должен иметь возможность принять аргумент, например.Test123.

${result}=        Start Process      python    cwd=${ROOT}/PythonLibraries   -c    'import MyPythonScript; MyPythonScript.MyFunction();' Test123

Мне нужна помощь с синтаксисом того, как это кодировать.Онлайн поддержка для этого ограничена, если вы просто не хотите печатать в терминал, что мне не сильно помогает.Любая помощь с этим будет принята с благодарностью.

1 Ответ

0 голосов
/ 04 февраля 2019

Важно помнить, что для команды в командной строке кавычки являются требованием shell , а не python.Таким образом, когда вы выполняете ту же самую командную строку из чего-то другого, кроме оболочки, вам нужно использовать соответствующие кавычки (или их вообще нет).

В случае робота, кавычка - это пробел между аргументами.Другими словами, вам не нужно использовать одинарные кавычки, чтобы сообщить python, где команда начинается и заканчивается, как вы делаете в оболочке, для этого нужны два или более пробела.

В вашемВ этом случае команда для запуска из Start Process имеет значение «python», а аргументы этой команды - «-c», сценарий в целом и «Test123».Каждый из них должен использовать робота «цитирование» - пробелы вокруг каждого.

Наконец, аргументы ключевого слова для ключевого слова должны идти после команды, которую нужно выполнить, и после аргументов, не являющихся ключевыми словами.

Следующее должно работать.Я использовал несколько строк, чтобы было легче увидеть отдельные аргументы

${result}= Start Process      
...  python     
...  -c    
...  import MyPythonScript; MyPythonScript.MyFunction() 
...  Test123  
...  cwd=${ROOT}/PythonLibraries

Другой способ написать это будет так:

${result}= Start Process      
...  python    -c    import MyPythonScript; MyPythonScript.MyFunction()  Test123 
...  cwd=${ROOT}/PythonLibraries
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...