使用pytest运行和不使用pytest运行,对于同一个文件打开,路径却不一样,而且是一个可以运行,一个不可以。具体如下:
我的文件结构
不使用pytest运行时:
不需要指定路径,如果是with open('ddt/data.json') as f,则会报错
import json
def get_data():
with open('data.json') as f:
#f返回字典类型
continer = json.load(f)
#print(continer)
data = []
data.extend(continer['keys'])
return data
if __name__ == '__main__':
print(get_data())
使用pytest时:
要这样
def get_data():
with open('ddt/data.json') as f:
#f返回字典类型
continer = json.load(f)
#print(continer)
data = []
data.extend(continer['keys'])
return data
如果和上面一样,使用with open('data.json') as f,则会报错
ddt/test_json.py:None (ddt/test_json.py)
ddt\test_json.py:13: in <module>
@pytest.mark.parametrize('name',get_data())
ddt\test_json.py:5: in get_data
with open('data.json') as f:
E FileNotFoundError: [Errno 2] No such file or directory: 'data.json'
但ddt/data.json也不是绝对路径,绝对路径是D:\File\python\jpess_project\testcases\ddt\data.json,这是为什么呢?
这个问题也在其他地方遇到过,保存文件时,不使用pytest,可正常报错,使用pytest就无法保存。