• 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()
    
  • 相关阅读:
    windows常用命令
    Qt 添加 QtNetwork 库文件
    LoadLibrary加载动态库失败
    C++11 Function 使用场景
    编程书籍集
    代码重构例集
    多重循环编码规范
    vim 命令学习(基础篇)
    QT构建窗体(父窗体传为野指针)异常案例
    JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别
  • 原文地址:https://www.cnblogs.com/xiaotufei/p/13338449.html
Copyright © 2020-2023  润新知