调用HTMLTestRunner生产的报告内容为空解决办法

开始代码如下,生成报告内容为空:

#coding=utf-8

import unittest,time,re
import requests
import json
import HTMLTestRunner

class test_api(unittest.TestCase):
   
    def setUp(self):
        self.url = "http://10.10.10.92:5050/api/demo/add.do"
        self.params1 = {‘id‘:‘10011‘}
        self.headers = {‘content-type‘:‘application/json‘}
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_aad_api(self):             
        req = requests.post(self.url,data=json.dumps(self.params1),headers=self.headers)
        status = req.status_code
        print(req.json())
        if status == 200:
            print("添加api接口成功")
        else:
            print("添加API接口失败!")
   
    def tearDown(self):
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
    #取前面时间
    now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
    filename = ‘D:\\python-function\\api\\report\\‘+now+‘result.html‘
    fp = open(filename, ‘wb‘)
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title=u‘API测试报告‘,
        description=u‘用例执行情况:‘)
    #执行测试用例
    testsuite = unittest.TestSuite()
    #添加测试用例到测试集中
    testsuite.addTest(test_api("test_aad_api"))
    runner.run(testsuite)

百思不得其解,想了好久,最后是发现每次生成的报告文件都删除不了,然后在后面加了一个,fp.close(),在执行,报告有内容了,希望能够帮助到跟我一样的人,完整代码如下:

#coding=utf-8

import unittest,time,re
import requests
import json
import HTMLTestRunner

class test_api(unittest.TestCase):
   
    def setUp(self):
        self.url = "http://10.10.10.92:5050/api/demo/add.do"
        self.params1 = {‘id‘:‘10011‘}
        self.headers = {‘content-type‘:‘application/json‘}
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_aad_api(self):             
        req = requests.post(self.url,data=json.dumps(self.params1),headers=self.headers)
        status = req.status_code
        print(req.json())
        if status == 200:
            print("添加api接口成功")
        else:
            print("添加API接口失败!")
   
    def tearDown(self):
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
    #取前面时间
    now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
    filename = ‘D:\\python-function\\api\\report\\‘+now+‘result.html‘
    fp = open(filename, ‘wb‘)
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title=u‘API测试报告‘,
        description=u‘用例执行情况:‘)
    #执行测试用例
    testsuite = unittest.TestSuite()
    #添加测试用例到测试集中
    testsuite.addTest(test_api("test_aad_api"))
    runner.run(testsuite)
    fp.close()

这样报告就有内容了

时间: 2024-11-18 11:44:00

调用HTMLTestRunner生产的报告内容为空解决办法的相关文章

vs2008调用opencv2.4.9的imread()函数失败解决办法

这两天在看opencv的C++接口函数,刚开始就出现问题: 一个简单的显示图像的程序,就是运行不成功: #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <string> using std::string; using namespace cv; int main() { string str="E:\\test\\LENA.BMP";

Activex调试以及m_hWnd为空 解决办法

1. 点击[开始]->[运行] 命令:regedit.2. 定位到HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main3. 在[右边区域][右键]新建一个名称为TabProcGrowth的DWORD值, 数值数据设置为0. VS不用重启,直接可以按F5进行调试ActiveX了! 参看: http://social.microsoft.com/Forums/en-US/vsdebug/th

android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法

今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化.最后发现原因是 ListView滚动时自动调用 onCheckedChanged 导致的.在查看了各种博客的解决办法后,国外的网站上有一个办法解决了我的问题.写下来分享一下. 在自定义Adapter的getView方法中这样写就行了. Java代码   //在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件

WCF调用服务时多了几个参数---解决办法

WCF interface前加上如下属性(把原来的ServiceContract属性改为):[ServiceContract,XmlSerializerFormat(Style = OperationFormatStyle.Rpc)]就没有额外参数了通讯双方既然是以XML来传送参数的,XML语法上允许有些标记出现空值,.net 2.0也允许int等类型有空值,所以会出现你说的额外参数,这些额外参数指示是否出现空值.XmlSerializerFormat(Style = OperationForm

【android】从源码上分析ListView/GridView调用setEmptyView不起作用的原因及解决办法

当我们使用ListView或GridView的时候,当列表为空的时候,我们往往需要一个Loading或者一段提示文字又或者一个特殊的View来提示用户操作,这个时候就用到了setEmptyView()方法. setEmptyView()其实是AdapterView的方法,而我们开发中常用到的ListView, GridView, ExpandableListView等都是继承于AdapterView的,所以可以直接调用这个方法. 但是问题来了,当你这个emptyview不在当前的View hie

springboot @Value获取值为空,解决办法

在spring中,常常使用 @Value("${property}") 从application.properties中取值,需要注意两点 使用 @Value 的类不能使用 new 关键字进行实例化对象,必须采用 依赖注入的方式进行实例化 不能使用显式的构造方法 否则,将取不到值.解决方法如下: 删除显式的构造方法,需要使用构造方法初始化的内容可以使用@PostConstruct @PostConstruct //加上该注解表明该方法会在bean初始化后调用 private void

mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法

总结报错原因:在my.init文件下新增data目录(datadir = F:\mysqldata ) 最新解压版本的mysql 解压安装的时候报错D:\mysql\mysql-5.7.10-winx64\bin>net start mysqlMySQL 服务正在启动 ....MySQL 服务无法启动. 服务没有报告任何错误. 请键入 NET HELPMSG 3534 以获得更多的帮助. mysql下面是没有data文件夹的,此文件夹不需要自己建 D:\mysql\mysql-5.7.10-wi

mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法 转自【IT精英团】:http://www.itnpc.com/news/web/144832818227054.html

最新解压版本的mysql 解压安装的时候报错D:\mysql-5.7.9-winx64\bin>net start mysqlMySQL 服务正在启动 .MySQL 服务无法启动.服务没有报告任何错误.  mysql下面是没有data文件夹的,此文件夹不需要自己建. D:\mysql-5.7.9-winx64\bin>mysqld --console2015-11-23T14:46:03.711082Z 0 [Warning] TIMESTAMP with implicit DEFAULT v

mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误 的解决办法

mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误 最新解压版本的mysql 解压安装的时候报错 D:\mysql-5.7.9-winx64\bin>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动. 服务没有报告任何错误. mysql下面是没有data文件夹的,此文件夹不需要自己建. D:\mysql-5.7.9-winx64\bin>mysqld --console 2015-11-23T14:46:03.711082Z