каркас робота: контрольный пример не может загрузить ключевое слово в файле ресурсов, который импортируется в папку родительского набора тестов - PullRequest
0 голосов
/ 11 июня 2018

enter image description here

Привет, я использую роботизированную среду для автоматизации тестирования веб-сайта, а изображение выше - структура теста в RIDE:

  • Тест: папка набора тестов, и я импортирую здесь файл ресурсов, который находится в « init .robot» в папке
  • Sub1: набор субтестов, импортnone
  • test: test case

Моя проблема в том, что в тестовом примере "test" робот не может распознать ключевое слово, импортированное в папку "Test" комплекта тестов, посколькубудет больше наборов субтестов, таких как sub2, sub3, как я могу импортировать ресурсы в одном месте?Я не хочу импортировать файл ресурсов в каждый набор тестов, есть ли способ сделать это?

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете импортировать цепочки.Ниже приведен пример такой цепочки и повторного использования.В этом примере у нас есть один 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 иВы сможете использовать ключевое слово независимо от того, импортировано оно или нет.

...