有兴趣一起讨论的同学可以加群:489650589 一起来聊天讨论
最近在搞自动化测试,选择了web端最流行的python+selenium,测试执行选用unittest框架,报告使用HTMLReportRunner
在代码执行的过程中,发现代码执行正常,但是没有报告产生,截图如下
代码执行正常:
执行后可以看到用例执行结果,但是无html报告文件生成,截图如下:
在网上查阅资料后发现,pycharm自带了unittest框架,执行脚本会调用自带的unittest框架,不会执行
if __name__ =="__main__": 之后的代码,可以在pycharm界面的右上角进行更改
将python tests中自带的unittest框架去掉,然后重新执行
重新执行后发现可以执行
if __name__ =="__main__":之后的代码 ,可以正常生成html报告
第二种情况,在导入HTMLtestRunner后,执行脚本发现报错,报错详情为编码问题,但是并不影响脚本的执行,这是因为python安装在windows中,其默认编码为ascii码,但是HTMLTestRunner中文件流的写入为utf-8编码,导致脚本执行完后并没有报告生成,此时可以通过重载系统编码的方式解决:
在执行脚本的前面加上以下三行
import sys
reload(sys)
sys.setdefaultencoding("utf-8")