Есть ли способ заставить 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