Мне нужно определить порядок запуска моих тестовых наборов. В данном процессе мне нужно, чтобы Suite X запускался раньше Suite Y. Структура:
Я использую Robot Framework в сочетании с Poetry.
Во всех проведенных мной исследованиях предлагалось использовать Pabot, который обычно используется для параллелизма. Вроде бы должна была уметь определять порядок выполнения тестов, но не получилось. Я хотел бы альтернативное решение использования этой библиотеки.
У меня есть набор тестов, который извлекает данные X, импортированные предыдущим набором тестов. Вместо создания большого набора настроек я сопоставил еще одну страницу (объекты страницы) для импорта необходимых данных в следующий набор тестов.
По умолчанию, если указан каталог, фреймворк будет запускать в нем пакеты в алфавитном порядке.
В вашем примере пакет X будет запускаться первым, потому что он находится в каталоге «коллекция наборов A» перед «пакетами B».
Я подозреваю, что имена ваших файлов разные, иначе вы получите желаемый результат в качестве побочного эффекта, поэтому переименуйте их/их каталоги, чтобы добиться того, чего вы хотели.
Более надежный подход заключался бы в явной передаче желаемого порядка при их запуске: сначала передайте тот, который вы хотите запустить первым, затем второй и так далее.
robot "collection suites A/Suite X.robot" "collection suites B/Suite Y.robot" etc
Отказ от ответственности: зависимость между пакетами не является оптимальной конструкцией; иметь такое между корпусами вряд ли приемлемо, что уж говорить о б/п люксах.
Я представлял, что это будет не идеально. Оказывается, мне нужно импортировать определенные данные, и это действие можно выполнить для каждого пользователя, поэтому я создал для этого набор тестов. В следующем наборе тестов мне нужно искать данные, которые, как ни странно, импортированы предыдущим набором тестов, поскольку мне нужно убедиться, что я всегда буду искать продукт «ProductNameX» независимо от среды/базы. Вот почему необходимо импортировать. Поэтому я подумал: нужно ли мне установить это действие как «Настройка пакета» и снова выполнить весь тяжелый импорт, или я просто закажу его? Вот как я пришел к этому решению.
Один давно известный прием (эта функция ) заключается в переименовании наборов тестов с использованием числового префикса, за которым следуют два символа подчеркивания. В RIDE есть функция, которая скрывает эти префиксы, а также они не печатаются в журнале и отчете (на уровне каталога Test Suite).
В вашем случае вы могли бы иметь:
tests
--> 01__Collection Suites A
--> 01__Suite X.robot
--> 02__Collection Suites B
--> 02__Suite Y.robot
Необходимость запуска одного теста или набора тестов перед другим — это запах кода. В чем причина этой зависимости?