写txt测试报告
需求:每个case的执行结果写入txt
实现:
1、定义一个函数,在需要写入的地方直接调用
def writeresult(self,text): with open('unitestreport.txt', 'a') as f: f.write(text) f.close()
可以写入txt,但是会发生截断:
原:{'id': 1.0, 'style': 'xpath', 'element': '/html/body/div[3]/div[1]/div/div/div/h1', 'fun': 'assertEqual()', 'value': 'Cheap Flights to Shanghai'} pass
保存后变成:()', 'value': 'Cheap Flights to Shanghai'} pass
2、定位问题
main函数保存txt报告时,对文本的操作方法是’w',改成‘a'即可成功保存
if __name__=='__main__': suit = unittest.TestSuite() suit.addTest(testui("test")) print("1") with open('unitestreport.txt','a') as f: #生成测试报告w:覆盖 a:追加 runner = unittest.TextTestRunner(stream=f,verbosity=2) # 加verbosity 参数可以控制输出的错误报告的详细程度 print("2") runner.run(suit)
3、在报告中写入执行时间
ticks = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #获取当前时间 with open('unitestreport.txt','a') as f: #生成测试报告w:覆盖 a:追加 runner = unittest.TextTestRunner(stream=f,descriptions='ticks',verbosity=2) # 加verbosity 参数可以控制输出的错误报告的详细程度 f.write(ticks+'\n') #写入换行 print("2") #runner.run(suit) # 运行测试集 runner.run(case)