Вы можете импортировать цепочки.Ниже приведен пример такой цепочки и повторного использования.В этом примере у нас есть один resources.robot
, который импортирует все различные sub*.robot
файлы.Это единственный файл, который их импортирует.
Затем есть два testcases*.robot
файла, которые приступают к импорту resources.robot
и имеют доступ к содержимому ключевых слов sub*.robot
.
resources.robot
*** Settings ***
Resource ../resources/sub1.robot
Resource ../resources/sub2.robot
Resource ../resources/sub1.robot
testcases1.robot
*** Settings ***
Resource ../resources/resources.robot
*** Test Cases ***
TC
No Operation
testcases2.robot
*** Settings ***
Resource ../resources/resources.robot
*** Test Cases ***
TC
No Operation
Как отмечалось в комментариях, любое ключевое слово, импортированное в файл __init__.robot
, недоступно за пределами этого файла.Это четко описано в разделе «Руководство пользователя Robot Framework» по Инициализация файлов .
При этом, если попытка включения файла основного ресурса в каждый файл пакета нежелательна, то альтернативный подходзагрузить файл ресурсов с помощью прослушивателя в начале каждого пакета.Документацию по слушателям можно найти здесь: Документы
Новый пример:
AddResourceListener.py
from robot.libraries.BuiltIn import BuiltIn
class AddResourceListener(object):
ROBOT_LISTENER_API_VERSION = 2
def __init__(self):
pass
def start_suite(self, name, attributes):
BuiltIn().import_resource('${EXECDIR}/resource.robot')
resource.robot
*** Keywords ***
Resource Keyword
Log "Keyword Executed from Resource File"
TestCase.robot
*** Test Cases ***
TC
Resource Keyword
Затем выполните обычную команду робота с дополнительным аргументом --listener AddResourceListener.py
иВы сможете использовать ключевое слово независимо от того, импортировано оно или нет.