import os
from TeacherWebsite.setting.constant import p_path
from configparser import ConfigParser, NoSectionError, NoOptionError
class ConfigHandler:
def __init__(self,filename,encoding='utf-8'):
self.filename = filename
self.encoding = encoding
self.config = ConfigParser()
a = self.config.read(filename,encoding=encoding)
def read(self,section,option):
try:
return self.config.get(section,option)
except NoSectionError:
print('没有这个section')
except NoOptionError:
print('没有这个option')
def get_list(self,section,option):
option_str = self.read(section,option)
#list转化
if isinstance(eval(option_str),list):
return eval(option_str)
return None
config = ConfigHandler(os.path.join(p_path.CONFIG_PATH,'config.ini'))
#因为在test—case包里每个文件都要使用ConfigHandler,所以直接在这个文件下边初始化一个config,直接去调用,就不用重复的初始化初始化了
p_path 文件是引入这个包下边的文件
代码如下:
#建立常量,可以吧所有可能会发生变动的常量
import os
class ProjectPath():
#ROOT_PATH = os.path.dirname(os.path.abspath(__file__))#ROOT_PATH获取的文件夹是setting
ROOT_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#这次获取的是项目名称TeacherWebsite
DATA_PATH = os.path.join(ROOT_PATH,'data')#获取data包的数据路径
CONFIG_PATH = os.path.join(ROOT_PATH,'setting')#获取config,ini的路径,该路径在config_handler实例化下边引用到
CASE_PATH = os.path.join(ROOT_PATH, 'test_case')# 测试用例方法路径
REPORT_PATH = os.path.join(ROOT_PATH, 'report')# 测试报告路径
# 如果没有改文件夹,自动创建
if not os.path.exists(REPORT_PATH):
os.mkdir(REPORT_PATH)
p_path = ProjectPath()#实例化方便引用