Используйте общие настройки Suite и разбор Suite для нескольких наборов тестов в структуре вложенных папок robot framewrok - PullRequest
3 голосов
/ 27 сентября 2019

Я новичок в Robot framework и пытаюсь лучше понять концепции и использование в Suite Setup и Suite Teardown , когда структура папок теста не"плоский".После долгих поисков в Интернете, руководство пользователя Robot Framework - выполнение раздела тестов , а также этот вопрос , который похож, но не совсем соответствует моей ситуации, я все еще не нашел никакого решения,Итак, поехали.

Мой проект теперь содержит следующие файлы:

_init__.robot, который содержит Suite Setup & Suite Teardown «определения», следующим образом:

*** Settings ***
Library   /path/to/some/python/file.py
Suite Setup  myCustomSuiteSetup
Suite Teardown  myCustomSuiteTeardown

*** Keywords ***
myCustomSuiteSetup
    ${ret_code} =  run keyword MySuiteSetupKeyword
    should be eqaul as integers ${ret_code} 0

myCustomSuiteTeardown
    ${ret_code} =  run keyword MySuiteTeardownKeyword
    should be eqaul as integers ${ret_code} 0

ГдеmyCustomSuiteTeardown и MySuiteTeardownKeyword - это ключевые слова, «связанные» с некоторыми функциями Python в файле /path/to/some/python/file.py.

В моем проекте 4 файла набора в настоящее время расположены так:

|--tests
|----suite_1.robot
|----suite_2.robot 
|----suite_3.robot
|----suite_4.robot
|----__init__.robot

Теперь цель (и использование) Suite Setup & Suite Teardown состоит в том, что Suite Setup будет запускаться в начале запуска папки ENTIRE tests, т.е. - до первый тестовый набор first suite, который в данном случае равен suite_1.robot и Suite Teardown будет работать после the последний тестовый набор последний наборов, который в данном случае равен suite_4.robot.

Чтобы это произошло, я просто вызываю все наборы следующим образом (изв одной папке «выше» папки tests):

robot tests

Пока все хорошо.

Теперь мой вопрос заключается в следующем: На самом деле я хочу"перестроить" народСтруктура тестовых файлов der, например, так:

|--tests
|----testGroup1
|--------suite_1.robot
|--------suite_2.robot 
|----testGroup2
|--------suite_3.robot
|--------suite_4.robot
|--__init__.robot    <----- Where the __init__.robot file should be placed now ?

Имеется в виду «собирать» наборы тестов в подпапки, тем не менее, я все еще хочу сохранить использование Suite Setup & Suite Teardownкак и прежде, т. е. при вызове каждого возможного подмножества наборов тестов в «корневой» папке tests, Suite Setup и Suite Teardown ДОЛЖНЫ быть первый и последний (соответственно) «шаги», которые должны быть выполнены, то естьнапример, допустим, я хочу запустить suite_3.robot & suite_4.robot, а затем, Suite Setup должен быть вызван перед первым тестовым примером в suite_3.robot и Suite Teardown должен быть вызван после последнего тестового примера в suite_4.robot.Также, конечно, я хочу сохранить только одну копию файла __init__.robot - т.е. не хранить две одинаковые копии __init__.robot в каждой подпапке, testGroup1 & testGroup2.Когда я это сделал, это сработало, но это не тот способ, которым я хотел бы это сделать.

Итак, мои вопросы:

  1. Где мне нужнопоместить файл __init__.robot?

  2. В случае, если я хочу запустить, например, только два набора тестов в testGroup2 (т.е. - suite_3.robot & suite_4.robot)Какую команду мне нужно использовать?

Конечно, в случае, если это не «правильный» способ (подход) для достижения моих целей (единый и единый Suite Setup & Suite Teardown для каждого подмножества тестовых наборов) - пожалуйста, посоветуйте, как это сделать.

Примечание: Я использую Robot Framework 3.1.2 (Python 3.5.2 в Linux)

...