HtmlTestRunner
1、一般生成报告时,会使用时间来作为报告名称的一部分,引入time这个第三方,使用以下方式格式化当前时间
下面运行最终结果:2019-03-29-14_29_18------>年-月-日-时-分秒
1 import time; 2 time_noe=time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
2、使用方式
time_noe=time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())); if __name__=='__main__': report_dir_02='report\\'+time_noe+'result.html';----->使用【相对地址】---建议使用相对地址(这个有点疑问啊??) report_dir = r'E:\\result02.html';-------------->使用【绝对地址】 re_open = open(report_dir_02, 'wb');------------>使用【wb】模式,打开这个地址 #定义一个HtmlTestRunner,并初始化(stream=文件流,title=测试标题,description=测试描述) runner=HTMLTestRunner.HTMLTestRunner( stream=re_open, title=u'测试标题', description=u'测试描述' )
#通过HtmLTestRunner的run方法来执行测试集-----这种方式其实最常用啦 runner.run(suit); print('执行成功');
结果,在当前项目下生成了测试报告
2、把结果放入指定文件夹下
实际应用场景中,一般希望,生成的report在我项目下的report相关的文件夹内统一生成,此时就要指定生成路径了
思考方式:使用路径拼接的方式(该函数用于路径拼接文件路径。)
1 report_dir_03=os.path.join(os.getcwd(),'result_report',''+time_noe+'result.html');
以上三个参数将路径拼接的最终结果为:
C:\Users\admin\PycharmProjects\test_case\result_report\2019-03-13-18_13_38result.html
问题记录:
①、报错:
按照报错字面意思:是str类型没有写入的属性
出错的原因是我把构造HtmlTestRunner中的Stream写成了report_dir_02,应该是report_open
File "D:\python3.7\lib\HTMLTestRunner.py", line 812, in generateReport self.stream.write(output.encode()) AttributeError: 'str' object has no attribute 'write'