Сортировка выполнения «Наборов тестов» в Robot Framework

Мне нужно определить порядок запуска моих тестовых наборов. В данном процессе мне нужно, чтобы Suite X запускался раньше Suite Y. Структура:

Я использую Robot Framework в сочетании с Poetry.

Во всех проведенных мной исследованиях предлагалось использовать Pabot, который обычно используется для параллелизма. Вроде бы должна была уметь определять порядок выполнения тестов, но не получилось. Я хотел бы альтернативное решение использования этой библиотеки.

Необходимость запуска одного теста или набора тестов перед другим — это запах кода. В чем причина этой зависимости?

Chris 25.08.2024 23:31

У меня есть набор тестов, который извлекает данные X, импортированные предыдущим набором тестов. Вместо создания большого набора настроек я сопоставил еще одну страницу (объекты страницы) для импорта необходимых данных в следующий набор тестов.

João Calado 25.08.2024 23:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

По умолчанию, если указан каталог, фреймворк будет запускать в нем пакеты в алфавитном порядке.
В вашем примере пакет X будет запускаться первым, потому что он находится в каталоге «коллекция наборов A» перед «пакетами B».
Я подозреваю, что имена ваших файлов разные, иначе вы получите желаемый результат в качестве побочного эффекта, поэтому переименуйте их/их каталоги, чтобы добиться того, чего вы хотели.

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

robot "collection suites A/Suite X.robot" "collection suites B/Suite Y.robot" etc

Отказ от ответственности: зависимость между пакетами не является оптимальной конструкцией; иметь такое между корпусами вряд ли приемлемо, что уж говорить о б/п люксах.

Я представлял, что это будет не идеально. Оказывается, мне нужно импортировать определенные данные, и это действие можно выполнить для каждого пользователя, поэтому я создал для этого набор тестов. В следующем наборе тестов мне нужно искать данные, которые, как ни странно, импортированы предыдущим набором тестов, поскольку мне нужно убедиться, что я всегда буду искать продукт «ProductNameX» независимо от среды/базы. Вот почему необходимо импортировать. Поэтому я подумал: нужно ли мне установить это действие как «Настройка пакета» и снова выполнить весь тяжелый импорт, или я просто закажу его? Вот как я пришел к этому решению.

João Calado 26.08.2024 14:39
Ответ принят как подходящий

Один давно известный прием (эта функция ) заключается в переименовании наборов тестов с использованием числового префикса, за которым следуют два символа подчеркивания. В RIDE есть функция, которая скрывает эти префиксы, а также они не печатаются в журнале и отчете (на уровне каталога Test Suite).

В вашем случае вы могли бы иметь:

tests
     --> 01__Collection Suites A
        --> 01__Suite X.robot
     --> 02__Collection Suites B
        --> 02__Suite Y.robot

Другие вопросы по теме