【发布时间】:2023-04-03 11:50:01
【问题描述】:
我想使用 tox 运行一些测试,但为了让它工作,他尝试先导入一些模块,然后使用 pip 进行。
我的项目结构如下所述:
module_a/
/tests/test_a.py
/__requirements.txt
/__tox.ini
module_b/
/tests/test_b.py
/__requirements.txt
/__tox.ini
module_c/
/tests/test_c.py
/__requirements.txt
/__tox.ini
module_a/requirements.txt
#requirements.txt content from module A
'../module_b'
module_b/requirements.txt
#requirements.txt content from module B
'../module_c'
我所期望的只是通过要求 module_b 来导入 module_c,因为他需要他,但由于某种原因我不能,它会引发错误
错误:找不到满足模块_c(来自模块_b)要求的版本(来自版本:无) 错误:没有为 module_c 找到匹配的分布
因此,我还必须在 module_a requirements.txt 中添加 module_c 才能工作。
#requirements.txt content from module A
'../module_c'
'../module_b'
tox.ini 文件
[tox]
envlist =
py3
[testenv]
deps =
-r requirements.txt
commands =
#basically the same for all modules, only module name changes
pytest --cov {envsitepackagesdir}/module_a
如果我只是在 module_b 中运行 pip install 就可以正常工作,不像 module_c 的路径错误。
有一种方法可以在运行 tox 或仅 pip 时使用 requirements.txt 从依赖项中安装依赖项?
【问题讨论】:
-
你能分享一下你现在的
tox.ini吗?请添加tree -L2或类似的输出。谢谢! -
我放了tox.ini,但不好意思问一下,tree -L2是什么意思?
-
谢谢!
tree -L2是 linux 命令,用于显示 2 级深度的目录结构,但我刚刚看到,您在上面包含了一些结构。所以,基本上你有一个文件夹,里面有三个子文件夹(module_a、module_b、module_c),每个模块都有自己的tox.ini和requirements.txt?对?并且通过 tox 运行每个项目的测试是可行的,但是现在你想在模块之间运行一些集成测试,你有问题,对吧? -
是的,这正是正在发生的事情
-
我尝试只使用没有 tox 的 pip3 来做同样的事情,因为 tox 使用 pip3 并且我遇到了同样的问题
标签: python-3.x tox