Есть ли способ заставить Robot Framework запускать тестовые пакеты в определенном порядке?

Предположим, у меня есть 2 набора тестов в локальном каталоге, foo и bar, и я хочу запустить тестовый набор в порядке foo, затем bar.

Я попытался запустить pybot -s foo -s bar ., но тогда он просто идет и запускает бар, затем foo (т.е. в алфавитном порядке).

Есть ли способ получить pybot для запуска наборов фреймов робота в порядке, который я определяю?

Ответ 1

Структура Robot может использовать файлы аргументов, которые могут использоваться для указания порядка выполнения (docs):

Это из старых документов (не в Интернете):

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

В принципе, вы создаете нечто похожее на запуск script.

--name My Example Tests
tests/some_tests.html
tests/second.html
tests/more/tests.html
tests/more/another.html
tests/even_more_tests.html

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

Другой вариант - использовать start up script. Чем вам приходится иметь дело с другими аспектами, такими как операционная система, на которой выполняется тестирование. Вы также можете использовать python для запуска script на нескольких платформах. В этом разделе больше docs

Ответ 2

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

01__my_suite.html → Моя сюита 02__another_suite.html → Другой сюиту

Такие префиксы не включаются в сгенерированное имя тестового набора, если они отделены от базового имени пакета двумя символами подчеркивания:

Подробнее здесь.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#execution-order

Ответ 3

Вы можете использовать tagging.

Пометьте тесты как foo и bar, чтобы вы могли запускать каждый тест отдельно:

pybot -i foo tests

или

pybot -i bar tests

и определите порядок

pybot -i bar tests || pybot -i foo tests

или в script.

Недостатком является то, что вам нужно запустить настройку для каждого теста.

Ответ 4

Может быть что-то подобное?

pybot tests/test1.txt tests/test2.txt

Итак, чтобы обратить вспять:

pybot tests/test2.txt tests/test1.txt