9-Unittest+HTMLTestRunner不能生成报告解决方法


1、问题现象

    在使用HTMLTestRunner生成测试报告时,出现程序运行不报错,但不能生成报告的情况。

    刚开始找了很久没发现问题,后来加上打印信息,发现根本没执行生成报告这部分代码。最后网上找到原因:pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的,所以不能生成测试报告

if __name__ == '__main__':
    print '开始执行main'
    # 创建文件,用来存放测试报告
    filepath = '..\htmlreport\htmlreport.html'
    # 以读写的方式打开文件
    fp = file(filepath,'wb')
    # 创建测试套
    suit = unittest.TestSuite()
    # 向测试套里添加case
    suit.addTest(TestMethod('test_01'))
    suit.addTest(TestMethod('test_02'))
    # 定义HTMLTestRunner执行相关参数
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='This is first test')
    # 执行case
    runner.run(suit)
    fp.close()
    print 'main执行结束'

2、如何判断是否以unittest框架运行?

  如下,只要运行环境是unittest in ...的,就都是以unittest框架运行的

3、解决方案

  只要不以unittest框架方式运行就可解决不能生成报告的问题。可自己新增一个不以unittest框架方式运行的环境。

1)如下点击edit configurations-->选中python-->点击+

2)点击python

3)填写环境名称和脚本路径

4)选择步骤三种新增的环境,运行脚本,即可生成报告