我正在开发一个Python项目,我有一个名为
Api
结构的文件夹,其中包含各种模块和一个专门用于测试的文件夹。我想将项目文件夹的 api
中的 Python 文件包含到位于测试文件夹中的测试文件中。我怎样才能实现这个目标?
my_project/
├── api/
| ├── core/
│ | ├── file1.py
│ | ├── file2.py
| | ...
│ ├── module3.py
│ └── ...
├── tests/
│ ├── test_my_module.py
│ ├── ...
└── ...
我的代码片段是这样的,但它给了我一个错误:
import unittest
from api.core import ContentGenerator
class TestMagicBox(unittest.TestCase):
content_generator = ContentGenerator()
def test_caption(self):
result = TestMagicBox.content_generator.generate_description(
"pizza", "peperoni pizza"
)
self.assertIsNotNone(result)
if __name__ == "__main__":
unittest.main()
我的测试文件位于 api 文件夹之外的单独目录中,特别是在测试目录中。在测试文件夹中,我想包含并测试 api 项目核心子文件夹中的 magic_box.py 模块。 (
api/core/magic_box.py
)
在确保干净且可维护的测试实践的同时,在 Python 中实现这一目标的推荐方法是什么?
我们将非常感谢您的见解和指导。
在 Python 中,模块路径是相对于运行 Python 解释器的目录而言的,因此要运行
tests
包中的模块并访问 api
包中的模块,您需要从其父目录运行 Python, HERMES
,例如:
HERMES> python tests/test_content_generator.py