如何解决在父项目上运行 pytest 时,如何忽略 git 子模块例如 submodule/conftest.py根目录下的 conftest.py 文件?
问题
如何告诉 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 子模块,那么我将无法使用这些库运行集成测试。
解决方法
您可以setup your submodule with a sparse-checkout rule(带有exclusion rule)以免加载自己的executeRequest().map { response =>
response.body match {
case Right(body) =>
read[AccessTokenResponse](body).access_token
case Left(err) =>
// Handle the error here
}
}
如果该文件不在子模块中,它会被 conftest.py
自动“忽略”。
例如,运行:
pytest
,
我通过在我的项目的根目录创建一个 pytest.ini
文件来明确指定测试路径来解决这个问题:
# pytest.ini
[pytest]
testpaths =
tests
这样子模块路径就会被忽略。弄乱从子模块中检出哪些文件听起来很痛苦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。