概述
最近在学习python中的单元测试框架unittset,最后一步需要利用HTMLTestRunner 生成一个测试报告。但是整个程序执行完,代码无报错,html测试报告却没有生成。百度网上资料,借鉴各网友的解决方法,最后成功解决该问题。现将解决思路分析如下:
1.问题描述
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import unittest
from selenium import webdriver
import HTMLTestRunner
class TestDiv(unittest.TestCase):
def setUp(cls):
cls.driver=webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get('https://www.baidu.com')
def tearDown(cls):
cls.driver.quit()
def test_baidu_news(self):
self.assertTrue(self.driver.find_element_by_id('kw').is_enabled())
if __name__=='__main__':
suite=unittest.TestLoader().loadTestsFromTestCase(TestDiv)
runner=HTMLTestRunner.HTMLTestRunner(
stream=open('testReport.html','wb'),
title='TestReport',
description='测试报告详细信息'
)
runner.run(suite)
print('main函数测试')
上面没有生成测试报告,很可能是生成自动测试报告的那部分if语句(主函数)的代码没有执行,然后添加了一句打印来测试,果然,没有执行print语句。翻阅资料发现,pycharm执行py文件,有几种方式:
a.unittest框架
b.pytest框架
c.默认
d.等等
其实我们认真观察下pycharm的几处run,会发现不同地方的run原来是利用不同的方式或框架执行该程序。如果是用unittest框架执行,那就不会执行我们代码中的最后一部分主函数,主函数中的打印信息也出不来,即主函数中的自动生成报告也就执行不了。
2.解决方法,将pycharm中利用unittest框架执行的改为利用原python执行
a.首先点击run中的Configurations,再选中python tests下面的程序,点击"—"符号,选择移除。
b.再打开setting设置,选择Python Integrated Tools,此处的testing选择unittest,再保存。
3.最后再你的程序代码执行run时,选择不带unittest框架的执行就好,就能顺利生成测试报告。
最后
以上就是文艺大树为你收集整理的python+unittest+HTMLTestRunner 程序代码无报错,但是无法生成html测试报告的全部内容,希望文章能够帮你解决python+unittest+HTMLTestRunner 程序代码无报错,但是无法生成html测试报告所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复