Yah*_*ran 5 python python-import pytest
想象一个简单的文件夹结构:
my_folder/
__init__.py
funcs.py
tests/
test_funcs.py
Run Code Online (Sandbox Code Playgroud)
函数.py:
def f():
return 2
Run Code Online (Sandbox Code Playgroud)
__init__.py:
from funcs import f
Run Code Online (Sandbox Code Playgroud)
test_funcs.py:
from funcs import f
def test_f():
assert f() == 2
Run Code Online (Sandbox Code Playgroud)
这是文档中建议的方法之一: https://pytest.readthedocs.io/en/reorganize-docs/new-docs/user/directory_struct.html
但是当我从以下位置运行 pytest 时my_folder:
tests/test_funcs.py:1: in <module>
from funcs import f
E ModuleNotFoundError: No module named 'funcs'
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我本以为pytest设置了它运行的路径,这样如果不手动处理就不会出现这些类型的错误。
文档也没有给出任何关于这一点的指示......他们只是说:
通常,您可以通过指向测试目录或模块来运行测试:
Run Code Online (Sandbox Code Playgroud)pytest tests/test_appmodule.py # for external test dirs pytest src/tests/test_appmodule.py # for inlined test dirs pytest src # run tests in all below test directories pytest # run all tests below current dir
我缺少什么?
这是一个非常简单的方法:
__init__.pymy_folder运行python -m pytest或python -m pytest tests(但不是pytest)说明:使用该选项运行模块-m会将其包含在 中PYTHONPATH,因此与 import 语句相关的所有内容都将顺利解决。
| 归档时间: |
|
| 查看次数: |
5625 次 |
| 最近记录: |