Python 存储库组织 w.r.t。测试和 PyDev
Python repository organization w.r.t. tests and PyDev
我正在尝试为某些代码设置 Python 存储库。我已阅读 Structuring Your Project 教程并按照建议设置所有内容。具体来说,我有以下目录结构:
repo_root/
some_module.py
tests/
context.py
test_some_module.py
context.py
文件完全包含教程建议的内容:
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import some_module
test_some_module.py
文件导入 some_module
像这样:
from context import some_module
而不是
from .context import some_module
如网站所示。
我正在使用 PyDev,运行通过右键单击测试文件并选择 Run As/unittest
来进行单元测试。这样就导致测试到tests
目录下的运行,其中context
可见,导入成功。 PyDev 显示 Unresolved import
。我猜这是因为它 运行s 来自项目根目录的解析器。如果我将 tests
添加到 PYTHONPATH
它仍然不起作用。只有当我在 tests
中添加一个 __init__.py
文件时,PyDev 才会停止显示错误,因为它将 tests
视为一个库。
设置存储库的正确方法是什么?测试应该只在 tests
目录中调用,还是应该从存储库根目录启动?
如果你的包中没有 __init__
文件(即使它是用于测试),PyDev 并不能很好地工作,所以,我的建议是在那里添加 __init__
。
我正在尝试为某些代码设置 Python 存储库。我已阅读 Structuring Your Project 教程并按照建议设置所有内容。具体来说,我有以下目录结构:
repo_root/
some_module.py
tests/
context.py
test_some_module.py
context.py
文件完全包含教程建议的内容:
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import some_module
test_some_module.py
文件导入 some_module
像这样:
from context import some_module
而不是
from .context import some_module
如网站所示。
我正在使用 PyDev,运行通过右键单击测试文件并选择 Run As/unittest
来进行单元测试。这样就导致测试到tests
目录下的运行,其中context
可见,导入成功。 PyDev 显示 Unresolved import
。我猜这是因为它 运行s 来自项目根目录的解析器。如果我将 tests
添加到 PYTHONPATH
它仍然不起作用。只有当我在 tests
中添加一个 __init__.py
文件时,PyDev 才会停止显示错误,因为它将 tests
视为一个库。
设置存储库的正确方法是什么?测试应该只在 tests
目录中调用,还是应该从存储库根目录启动?
如果你的包中没有 __init__
文件(即使它是用于测试),PyDev 并不能很好地工作,所以,我的建议是在那里添加 __init__
。