Maz*_*mia 6 python testing package python-3.7
最近创建了一个flask应用,决定在应用文件夹外添加一个test文件夹(app和test文件夹都在同一个目录下)。我要测试的所有实现都包含在 app 文件夹中创建的包和模块中。
__init__.py 文件在两个文件夹中都可以正常工作。但是,当我从测试文件夹中删除 __init__.py 文件时,我开始遇到 moduleImportError。Python 文档说 __init__.py 文件不再是 python 3.3+ 中包的要求,但在我这里的情况下,似乎这是一个要求。有人可以解释为什么会这样吗?
小智 9
快速回答,是的,多亏了隐式命名空间包,您__init__.py不再需要文件。但是非标准库包括一些工具,单元测试或设置工具还需要__init__.py的文件。
在大多数情况下,我推荐以下项目树状:
setup.py
src/
mypkg/
__init__.py
app.py
view.py
tests/
__init__.py
foo/
__init__.py
test_view.py
bar/
__init__.py
test_view.py
Run Code Online (Sandbox Code Playgroud)
顶级包src和根文件夹不需要__init__.py文件。每个其他子模块都需要一个__init__.py文件。
通过遵循此规则,大多数工具成功地发现了模块,包括 unittest、pytest 和 setuptools。
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |