在Pycharm中使用HTMLTestRunner不能生成测试报告

遇到一个问题,在做自动化测试时,使用的编辑工具是Pycharm,语言是python3+selenium3,代码运行没有问题,但是就是执行完毕后没有在对应目录生成测试报告。因为之前使用的是python2.7+selenium2,程序运行是没有问题的,部分代码如下:

在Pycharm中使用HTMLTestRunner不能生成测试报告

按照网友的使用经验,将HTMLTestRunner修改(因为python2和python3的某些语法不一致),然后运行类似的代码,如下

在Pycharm中使用HTMLTestRunner不能生成测试报告

运行完以上代码后遇到两个问题:

问题一:程序没有报任何问题的错误

问题二:没有在指定的目录下生成对应的测试报告


针对问题一,进行日志打印,发现加在“if __name__ =='__main__”中的print内容并没有执行,可见,脚本运行时并没有执行里面的代码,所以问题二得到解释,为什么里面的代码没有运行呢?原来在pycharm不同的地方右键后,运行脚本得到的结果是不一样的:

在具体的用例上右键时,结果如下

在Pycharm中使用HTMLTestRunner不能生成测试报告

在main函数处右键时,如下:

在Pycharm中使用HTMLTestRunner不能生成测试报告

第一个右键的结果是运行整个文件,这时main下面的代码是会被执行的;第二个只运行用例,这样的话main里面的代码不会被执行,所以我们要生成报告,必须按照运行整个文件的方式执行脚本。

如果在任何地方右键都不能得到运行整个文件的方式,可以在右上方进行选择,如下

在Pycharm中使用HTMLTestRunner不能生成测试报告


运行方式正确后,运行时程序报错

fp = file(filename, 'wb')

NameError: name 'file' is not defined

经过检查,在python3中打开文件使用的open()方法,不是file()

修改代码fp = open(filename, 'wb')


再次运行时,执行通过,并且在对应目录生成了测试报告