Я прочитал этот связанный вопрос , но я не смог применить ни один из приведенных ответов.
У меня есть несколько тестовых сценариев, все из которых используют одну и ту же функцию, реализованную в общем файле.
Общий файл начинается со следующих import
операторов:
from Class1 import Class1
from Class2 import Type1 as Class2
from Class3 import Type1 as Class3
from Class4 import Class4
from Class5.Type1 import Class5
from Class6.Type1 import Class6
Я хотел бы иметь возможность изменить Type1
для некоторых тестовых сценариев.
В настоящее время я просто извлекаю соответствующие утверждения из общего файла и помещаю их в каждый из тестовых файлов с типом, который необходимо проверить.
Но я ищу «более приятный» способ, например, передать строку, которая представляет тип, и импортировать динамически в соответствии с этой входной строкой.
Это позволило бы мне свести к минимуму сценарии тестирования.
Полагаю, мне, возможно, понадобится поместить оператор import
в функцию, вызываемую тестовыми сценариями, но я в порядке.
Как именно я могу этого достичь?
Я не пробовал печально известную eval
, потому что:
- это зло
- Я почти уверен, что он не работает для выражений "не только для чтения"
Любые идеи будут очень признательны.
Спасибо!