#python #pytest
#python #pytest
Вопрос:
Я пытался определить множество приспособлений в одном файле, скажем redis.py (abcplgfixredis.py ) и использовать их в моих тестовых примерах (abc common test_file.py) через pytest_plugin. При этом я заметил, что тестовые примеры не могли видеть определенные мной приспособления.
Моя структура папок следующая
abc
|
common
|
config.py ( I have defined pytest_plugin=["plgfix.redis"]
test_file.py
plgfix
|
redis.py ( I have defined bunch of fixtures here)
__init__.py
Из иллюстрации выше
-> plgfix (folder) has my desired file(redis.py) and __init__.py file to
make folder as package.
-> In abccommonconfig.py. I have defined pytest_plugin global variable
pytest_plugins = ["plgfix.redis"] #assuming all fixtures in
#redis.py file , available for test cases
-> Now I have created abccommontest_file.py where I'm using one of the
defined fixture in redis.py (abcplgfixredis.py) as follows.
def test_fixtu(fix1):
print ("Hi")
pass
I was getting error as fix1 is not found
Примечание: Я могу импортировать конфигурационный файл и видеть содержимое как ‘пакет‘, ‘спецификацию‘, ‘pytest_plugins’ ……. (подтверждаю, что это не проблема с путем)
Комментарии:
1. Переименуйте
config.py
вconftest.py
и переместите его в корень проекта.2. Я переименовал файл в conftest.py и переместите в корневую папку (здесь abc /). Все еще я вижу ошибку fixture not found. В дополнение к этому я попытался переместить тестовый файл в корневую папку, хотя ошибка та же. Я также удалил весь файл .cache.
Ответ №1:
Согласно документам pytest, глобальная переменная должна быть либо a str
, либо a Sequence[str]
. Похоже, вы присвоили ей список.