我有一个要测试的python代码。这是一个简单的代码。文件夹结构如下。
.
├── code
│ ├── conf.json
│ ├── __init__.py
│ └── a.py
└── test
├── __init__.py
├── a_test.py
a.py中的代码:
import json
conf_path = "conf.json"
def run():
with open(conf_oath,'r') as f:
conf = json.load(f)
print(conf)
a_test.py中的代码:
import unittest
from os import sys, path
sys.path.append('../code')
from code import a
class Test(unittest.TestCase):
def test_run():
conf = a.run()
print(conf)
if __name__ == '__main__':
unittest.main()
运行python -m unittest test.a_test
时出现以下错误-
No such file or directory: 'conf.json'
我要去哪里错了?该如何纠正?
答案 0 :(得分:1)
文件的路径是相对于您从中执行测试的位置,而不是相对于测试文件所在的位置。您可以使用os库获取文件的完整路径。
import json
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
conf_path = os.path.join(dir_path, 'conf.json')
def run():
with open(conf_path, 'r') as f:
conf = json.load(f)
print(conf)