Я пытаюсь реорганизовать наши тестовые библиотеки для автоматизации, и нос кажется действительно многообещающим. Мой вопрос: какая лучшая стратегия для передачи объектов Python в носовые тесты?Передача пользовательских объектов Python в nosetests
Наши тесты организованы в тестовом листе с кучей модулей, которые выполняют различные типы операций запроса. Что-то вроде этого:
testlib
\-testmoda
\-testmodb
\-testmodc
В некоторых случаях тестовые модули (т.е. testmoda) не что иное, как test_something(), test_something2() функции, а в некоторых случаях мы имеем класс TestModB в testmob с test_anotherthing1(), test_anotherthing2(). Приятно, что нос легко находит и то, и другое.
Большинство этих тестовых функций являются запросами фабричных материалов, которые могут легко обмениваться одним соединением с нашей фермой серверов. Таким образом, мы делаем много test_something1 (cnn), TestModB.test_anotherthing2 (cnn) и т. Д.
В настоящее время мы не используем нос, вместо этого у нас есть hodge-podge из самодельных сценариев драйверов с жестко закодированными списками тестов выполнить. Каждый из этих сценариев драйвера создает свой собственный объект подключения. Поддержание этих сценариев и мелочей связи является болезненным.
Я хотел бы воспользоваться бесплатным преимуществом открытия носа, передав объект связи по своему усмотрению.
Заранее благодарен!
Rob
P.S. Объекты соединения не расходуются. :(
Это один из подходов, который я рассматривал, хотя каждый вызов фабрики в настоящее время создает новое уникальное соединение. В идеале я хотел бы построить один объект соединения, а затем передать его носу. – Rob
Если вы хотите, чтобы фабрика возвращала общее (общее) соединение, это легко сделать. –
@Matt - Удивительный. Используя структуру, которую я заметил в описании, что вы рекомендуете? В пределах пространства модуля достаточно легко сделать, но как я могу совместно использовать одно глобальное соединение со всеми модулями testlib при отключении nosetests.exe? Я все еще новичок в Python и пропустил что-то основное. – Rob