Немного предыстории
Я использую Robot Framework с Python, чтобы создать небольшую платформу для автоматизации тестирования.У меня есть несколько разных библиотек;пара привязана к конкретному приложению, а у одного есть ключевые слова, которые я хотел бы всегда иметь в наличии.Эта всегда доступная библиотека является моей общей библиотекой, и мне нужно, чтобы она была доступна из функций других моих библиотек.
Способ, которым я достиг этого до сих пор, был неким образцом в верхней части моей другой библиотеки.библиотеки.В частности, в других моих библиотеках у меня есть:
try:
self.common_library = BuiltIn().get_library_instance("my_common_lib")
except RuntimeError:
BuiltIn().import_library("my_common_lib", True)
self.common_library = BuiltIn().get_library_instance("my_common_lib")
Этот код проверяет текущий контекст робота на наличие общей библиотеки и получает ссылку на нее, сначала импортируя библиотеку, если это необходимо.Это означает, что у меня есть ссылка на общую библиотеку во всех моих других библиотеках, и означает, что всякий раз, когда я импортирую любую из моих библиотек в таблицу настроек робота, у меня также есть доступ к ключевым словам общей библиотеки.
Проблемазаключается в том, что при последовательном запуске нескольких тестов робота общая библиотека исчезает.У меня есть несколько скриптов Robot в каталоге и запускаю «robot * .robot».В каждом тесте я запускаю ключевое слово из общей библиотеки.Я никогда не импортирую общую библиотеку в таблицу настроек, так как она должна автоматически импортироваться другими библиотеками, как описано выше.В первом тесте общая библиотека существует, и ключевые слова в ней работают нормально.Во всех следующих тестах я получаю ключевое слово not found error.Когда я печатаю результаты BuiltIn().get_library_instance(all=True)
, я вижу, что, хотя моя библиотека для конкретного приложения все еще загружена, общая библиотека больше не существует.
Проблема
Все мои библиотеки имеют ROBOT_LIBRARY_SCOPE = 'GLOBAL'
в них, включая общую библиотеку.Моя общая библиотека динамически импортируется через BuiltIn и имеет глобальную область видимости, но она кажется выпадающей из области при выполнении последующих тестов в одной команде.Есть ли причина, по которой динамически импортируемые библиотеки выходят из области видимости, даже если они имеют глобальную область видимости библиотеки?
По сути, я хочу, чтобы эта общая библиотека всегда была доступна в моих скриптах роботов и чтобы каждая из моих пользовательских библиотек поддерживаласьссылка на общую библиотеку.Если есть лучший способ добиться этого или какой-либо другой способ сделать то, чем я сейчас занимаюсь, пожалуйста, дайте мне знать!Благодаря.