如何让我的Python单元测试导入同级文件夹中的模块?
我还在慢慢理解 import
这个语句。如果我有两个同级的文件夹:
- src
- test
那么怎么才能让 test
文件夹里的 py
文件去使用 src
文件夹里的模块呢?有没有更好的办法,比如把一个文件夹放到另一个里面?
3 个回答
0
我和提问者的情况完全一样,所有我写的Python项目都是这样:
- 项目文件夹
- src
- test
无论是在src文件夹、test文件夹,还是这些文件夹的子文件夹里,所有模块都使用Mark在他的回答中展示的那种import
方式:
from src import module_name
我做的事情是写了一个模块,放在项目文件夹
里,它会递归地查找test文件夹中的所有测试模块,并让unittest运行这些测试。因为Python是在项目文件夹
中运行的,所以模块是相对于当前工作目录的。
这意味着这些测试就像任何其他想要从src
中导入模块的客户端一样。
6
试试这个:
import sys
import os
sys.path.append(os.path.join('..', 'src'))
import module_in_src_folder
已编辑以支持任何平台
10
你需要的代码是用来使用 src/module_name.py 这个文件的。
from src import module_name
而且你的根目录需要在 PYTHONPATH 里,比如说你是从根目录运行的。
你的文件夹结构和我用的一样,只不过是用模型的名字代替了 src。我这个结构是从 J Calderone 的博客 上得到的。