Pytest无法识别源文件夹数据文件问题求助
解决pytest运行时找不到data.csv的问题
问题根源:执行python -m pytest时,终端工作目录是项目根目录,但main.py里直接写data.csv会去根目录查找文件,而实际data.csv存放在src文件夹中。sys.path.insert(1, '/src')仅解决了模块导入的路径问题,不影响文件读取的相对路径规则。
直接用以下两种方法解决:
方法一(推荐,通用型)
修改main.py,基于脚本自身所在目录构建文件路径,确保无论从哪个目录运行脚本,都能精准定位到data.csv:
import pandas as pd import os # 获取当前main.py脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接出data.csv的完整路径 data_file_path = os.path.join(script_dir, "data.csv") data = pd.read_csv(data_file_path) def add_num_to_env_num(): print("success")
方法二(临时应急,不推荐长期使用)
如果不想修改代码,可以切换到src目录下运行测试,同时指定测试文件路径:
cd src python -m pytest ../tests
注意:这种方法需要同步调整测试文件的导入路径(比如把import src.main as main改成import main),灵活性较差,不如方法一靠谱。
内容的提问来源于stack exchange,提问作者Roberto
相关产品推荐
相关产品推荐

