我出现这个问题是因为使用了相对路径
file = "../data/login.json"
with open(file, encoding="utf-8") as f:
result = json.load(f)
这个在当前文件运行并不会报错,
不过,作为一个TestCase,他需要进行参数化并加载到测试套件(TestSuite)中统一运行。
但是,测试套件和这个测试用例并不在同一个目录下,
所以,就会导致,在测试套件运行这条测试用例的时候,会找不到用相对路径指定位置数据文件。
报出标题上的错误:
FileNotFoundError: [Errno 2] No such file or directory: '../data/login.json'
解决方法就是,使用绝对路径来指定数据文件的位置,绝对路径是固定的,不会随着文件本身所在位置的改变而改变。
比较便捷的方法就是在项目的统一配置文件中,写入一个项目的基本路径,在其他代码文件中要使用绝对路径的时候只需要用基本路径拼接上你想找的文件在项目下的相对路径就可以了。
代码如下:
app.py(项目的配置文件,在项目的主目录中):
import os # 要想使用路径相关功能需要导入 os 模块
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 后面括号中的是 app.py 这个文件的路径,附带了文件名 如: F:\WorkSpace\项目名称\app.py
# 因为我们要的是项目的主路径,所以加上括号前面的代码,去掉文件名,获得的就是项目的绝对路径 如:F:\WorkSpace\项目名称
print(BASE_DIR)
好了,这样就能解决找不到文件路径的问题了。