Невозможно использовать пользовательскую библиотеку Robot Framework, написанную с использованием Python - PullRequest
0 голосов
/ 19 февраля 2019

Создан пример скрипта Python (Elements.py) с функцией, подобной приведенной ниже:

from robot.api.deco import keyword

@keyword("join two strings")
def join_two_strings(arg1, arg2):
   return arg1 + " " + arg2

Затем я импортировал в сценарий Robot Framework (файл .robot) в виде библиотеки:

*** Settings ***
Library                 AppiumLibrary
Library                 Selenium2Library
Library                 BuiltIn
#Here is the import of Custom Lib
Library                 Elements.py 

*** Variable ***

*** Test Cases ***
Example that calls a Python keyword
   ${result}=   join two strings   hello world
   Should be equal     ${result}    hello world

После запуска над сценарием выдается сообщение об ошибке «Не найдено ни одного ключевого слова с именем« объединить две строки »».даже если я импортировал пользовательскую библиотеку.

Сообщение об ошибке:

[ ERROR ] Error in file C:\Users\ramana.gouda\PycharmProjects\SafeMobile\Test_Suite\TestCase_346.robot: Test library 'Elements.py' does not exist.

TestCase 346 :: Creating internal cases using device                          

Example that calls a Python keyword                                   | FAIL |
No keyword with name 'join two strings' found.

Ответы [ 2 ]

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

Другой вариант, если вы не хотите включать относительный путь во все файлы своего робота, - это использовать --pythonpath аргумент командной строки при запуске теста.

-P, --pythonpath

Дополнительные места для добавления к пути поиска модуля.

Таким образом, вы можете иметь:

Library    Elements.py

в вашем коде, в то время как вы должны запустить его, например:

robot  --pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/ Test_Suite/TestCase_346.robot

из папки SafeMobile.


Вы можете пойти дальше и создать файл аргумента , в котором вы можете собрать все настройки пути.Например, custom_libraries.txt:

--pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/
--pythonpath C:/Users/ramana.gouda/PycharmProjects/SafeMobile/libs/

И вы можете использовать его при запуске тестов:

robot --argumentfile custom_libraries.txt Test_Suite/TestCase_346.robot

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

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

Мне всегда приходится использовать относительные пути, если файл не находится в том же каталоге, что и мой тестовый пример, и на основании ошибки он выглядит так, как будто у вас нет.

Так что в вашем случае это будет выглядеть примерно так:следующее (не совсем так, поскольку я не знаю, где находится Elements.py):

Library    ../../SafeMobile/Elements.py

Надеюсь, это поможет!

...