gpt4 book ai didi

pytest - 强制 py.test 使用已安装的模块版本

转载 作者:行者123 更新时间:2023-12-04 23:22:49 26 4
gpt4 key购买 nike

我有一个混合 Python/C++ 库,其中测试文件混合在同一目录中的源文件中。布局看起来像

/home/irving/geode
geode
__init__.py
vector
__init__.py
test_vector.py
...
...

不幸的是,该库无法就地使用,因为它缺少 .so 扩展模块。 问题 : 我可以让 py.test 始终使用已安装的版本,即使从 /home/irving/geode 运行也是如此还是子目录?

测试文件有 from __future__ import absolute_import , 如果直接作为脚本执行,则运行良好。例如,如果我这样做
cd geode/vector
./test_vector.py
import geode ,它会找到已安装的版本。但是,如果我在 geode/vector 中运行 py.test ,它会找到 geode 的本地副本,然后死去。

最佳答案

我认为你有两个选择:

  • 运行 py.test --pyargs geode.vector.test_vector使 pytest 将参数解释为导入路径,从中派生文件系统路径。这应该针对已安装的版本运行测试。
  • 将测试移出 tests没有 __init__.py 的目录文件。这样你需要pip install -e .就地工作或可以做python setup.py installpy.test tests针对已安装的版本运行测试。
  • 关于pytest - 强制 py.test 使用已安装的模块版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530849/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com