Мой вопрос касается нескольких пользовательских плагинов в pytest. У меня есть два (или более) плагина pytest, которые я создал, которые установлены с помощью setuptools и точки входа pytest11, каждый плагин имеет свой собственный setup.py. Кажется, что только первый установленный плагин активен. Я проверил это с помощью операторов печати в hook pistest_configure. Если первый установленный плагин удаляется, то, по-видимому, вызывается только второй скрипт настройки для второго плагина. Кроме того, такое же поведение наблюдается с крюком addoption, параметры для второго установленного плагина не распознаются.
Я полностью смущен, потому что я использовал сторонние плагины, и они, похоже, работают нормально. Не являются ли крючки для всех установленных плагинов, которые должны быть вызваны? Может быть, это проблема с установкой плагинов, то есть с помощью setuptools? (используется команда python setup.py -v install). Pip правильно показывает все модули плагинов, как установлено.несколько пользовательских плагинов в py.test
Edit: Названия разные, ниже файлы установки:
from setuptools import setup
setup(
name="pytest_suite",
version="0.1",
packages=['suite_util'],
# the following makes a plugin available to pytest
entry_points={
'pytest11': [
'name_of_plugin = suite_util.conftest',
]
},
)
и
from setuptools import setup
setup(
name="pytest_auto_framework",
version="0.1",
packages=['automation_framework'],
# the following makes a plugin available to pytest
entry_points={
'pytest11': [
'name_of_plugin = automation_framework.conftest',
]
},
)
Можете ли вы опубликовать два файла setup.py? Вы используете разные имена плагинов для каждого? –
, указав pytest_plugins в файле conftest.py в тестовом каталоге, кажется, делает трюк (pytest doc указывает, что плагины, установленные в pytest_plugins, загружаются, когда загружается скидка). однако, это требование? не должны ли все установленные плагины быть активными? pytest_plugins = "automation_framework.conftest", "suite_util.conftest" – gangof4
Это те фактические файлы настроек, которые вы используете? Оба имеют одинаковое имя плагина: 'name_of_plugin'. В противном случае вы можете опубликовать воспроизводимый пример? –