自定义从指定的配置文件中读取要执行的用例,读取之后将其加入到执行测试套中:
def get_case_by_txt():
'''
* @Title: get_case_by_txt
* @Description:从配置文件获取用例,并加载到执行器
* @parameter:
* @author: ***
* @date 2021年4月1日 下午4:43:17
'''
//读取配置文件中要执行的文件名
file=os.path.join(CONSTANT.ROOT_PATH, 'project.txt')
case_list=[]
with open(file, mode='r') as f:
cases=f.readlines()
f.close()
for c in cases:
c=c.replace("\n", '')
case_list.append(c)
//根据文件名获取文件所在的包并导入类和获取类对象,将类加载到测试套中
scrip_path=CONSTANT.SCRIPT_PATH
root_path=CONSTANT.ROOT_PATH
load=unittest.TestLoader()
suits=unittest.TestSuite()
files=os.walk(scrip_path)
for root, dirs, file in files:
for f in file:
patt=r'.*.py$'
r=re.match(patt, f)
if r:
if r.group() in case_list:
fp=os.path.join(root, f).replace(root_path, "")[:-3].replace("\\", ".")[1:]
__import__(fp)
the_module=sys.modules[fp]
case=getattr(the_module, f[:-3])
suits.addTests(load.loadTestsFromTestCase(testCaseClass=case))
return suits