【发布时间】:2021-06-22 19:54:45
【问题描述】:
问题
我如何告诉 pytest 忽略存储库的 git 子模块中的所有测试文件,包括 conftest.py,因为这些测试和文件与父存储库的测试套件无关?
背景
我的项目中有许多 git 子模块,它们包含自己的独立测试配置。
当我尝试在“父”存储库中使用 pytest 时,我收到此错误,因为 pytest 正在我的子模块中收集 conftest.py 文件。
>pytest
=================================================== ERRORS ===================================================
_______________________________________ ERROR collecting test session ________________________________________
Defining 'pytest_plugins' in a non-top-level conftest is no longer supported:
It affects the entire test suite instead of just below the conftest as expected.
C:\Users\user\git\project\submodule\conftest.py
Please move it to a top level conftest file at the rootdir:
C:\Users\user\git\project
For more information, visit:
https://docs.pytest.org/en/latest/deprecations.html#pytest-plugins-in-non-top-level-conftest-files
========================================== short test summary info =========================================== ERROR
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ============================================== 1 error in 0.45s ==============================================
我的“父”git 存储库结构如下:
./.git
./project1/__main__.py
./project1/__init__.py
./project1/other_stuff/
./test/
./conftest.py
./setup.cfg
./submodule/.git
./submodule/project2/__main__.py
./submodule/project2/__init__.py
./submodule/project2/other_stuff/
./submodule/conftest.py
./submodule/setup.cfg
./submodule/test/
一个(麻烦的)选项可能是仅使用未初始化的子模块运行 pytest。但是,如果我不初始化 git 子模块,那么我将无法使用这些库运行集成测试。
【问题讨论】:
标签: python git pytest git-submodules python-3.8