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__