使用 HTMLTestRunner ,输出测试报告,报错:TypeError: write() argument must be str, not bytes,如下:
【原因】实例化HTMLTestRunner的runner。 runner = HTMLTestRunner.HTMLTestRunner( stream=sys.stdout, verbosity=2, title="HTML测试报告", description='TEST des')
参数 stream=sys.stdout 不满足默认使用utf8编码格式将测试报告结果到控制台导致。
【解决办法】(1)不指定输出内容的编码格式。
修改HTMLTextRunner.py文件里 第690行 self.stream.write(output.encode('utf8')) 修改为 =》self.stream.write(output)
运行脚本查看pycharm的控制台输出结果如下:
(2)指定格式输出到文件
参数 stream=f 时,修改HTMLTextRunner.py文件里,第690行为 self.stream.write(output.encode('utf8') ,默认使用utf8格式输出。