11. 单元测试报告

ps:遇到一次报错:
TypeError: TestHttpRequest () takes no arguments。
原因是在创建类

class TestHttpRequest(unittest.TestCase):

时忘了括号内继承(unittest.TestCase)。


单元测试报告

HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告。

下载地址如下:

http://tungwaiyip.info/software/HTMLTestRunner.html

这个扩展非常简单,只有一个HTMLTestRunner.py文件,保存到本地后,将其复制到Python安装目录(lib文件夹)下即可。

首先创建一个request类:

__author__ = 'Hello'

import requests

class HttpRequest:
    def Get(self,url,data):
        try:
            response=requests.get(url,data)
            return response.json()
        except Exception as e:
            print("Get请求出错啦!%s"%e)
            raise e

    def Post(self,url,data):
        try:
            response=requests.get(url,data)
            return response.json()
        except Exception as e:
            print("Post请求出错啦!%s"%e)
            raise e

if __name__=="__main__":
    url="http://v.juhe.cn/laohuangli/d"
    data={"key":"a8f2732319cf0ad3cce8ec6ef7aa4f33","date":"2016-05-20"}
    result=HttpRequest().Get(url,data)
    print(result)

随后创建一个测试类:

__author__ = 'Hello'

import unittest
from class_unittest.class_http.httpp_request import HttpRequest

class TestHttpRequest(unittest.TestCase):

    def setUp(self):
        print("测试开始咯!")
        self.url="http://v.juhe.cn/laohuangli/d"
        self.data={"key":"a8f2732319cf0ad3cce8ec6ef7aa4f33","date":"2016-05-20"}

    def test_get(self):
        try:
            http_request=HttpRequest()
            result=http_request.Get(self.url,self.data)
            self.assertEqual(0,result['error_code'],"Get请求出错了")
            print(result)
        except AssertionError as e:
            print("捕捉到Get请求的断言错误时%s"%e)
            raise e

    def test_post(self):
        try:
            http_request=HttpRequest()
            result=http_request.Get(self.url,self.data)
            self.assertEqual(0,result['error_code'],"Post请求出错了")
            print(result)
        except AssertionError as e:
            print("捕捉到Post请求的断言错误时%s"%e)
            raise e

    def tearDown(self):
        print("测试结束咯!")

最后创建一个suite:

import unittest
from class_unittest.class_http.test_http_request import TestHttpRequest
import HTMLTestRunnerNew
import time

suite=unittest.TestSuite()
suite.addTest(TestHttpRequest("test_get"))
suite.addTest(TestHttpRequest("test_post"))

now=time.strftime('%Y-%m-%d_%H_%M_%S')
filepath='PythonTestReport'+now+'.html'
fp=open(filepath,'wb')
#执行测试并生成测试报告
runner=HTMLTestRunnerNew.HTMLTestRunner(stream=fp,title="1017单元测试",verbosity=2)
runner.run(suite)

fp.close()
posted @ 2020-02-04 15:27  土匪哥的歌儿  阅读(105)  评论(0编辑  收藏  举报