Python+unittest框架

发表于:2020-10-16 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Small伟    来源:博客园

  1.unittest简介
  unittest库包括:TestCase、TestSuite、TestLoder、TextRunner、TextTestResult、TestFixture
  TestCase是测试的最小单元模块。它检查对特定输入集合的特定响应。unittest提供给一个基类Testcase,可以使用这个类创建一个新测试testTestCase 。
  TestSuite是测试集,测试集是测试用例、测试集或者二者的一个集合。它被用于把测试整合在一起,批量运行测试。
  TestLoder是用来加载 TestCase到TestSuite中,其中有几个loadTestsFrom_()方法,就是从各个地方寻找TestCase,创建他们的实例,然后add到TestSuite中,再返回一个TestSuite实例
  TextRunner是运行测试器, 测试运行器是协调测试执行并向用户提供结果的组件。运行器可以使用图形界面、文本界面、或返回特定值来指示执行测试的结果。
  TextTestResult测试结果会保存到TextTestResult实例中,包括运行了多少用例,成功与失败多少等信息
  TestFixture表示执行一个或者多个测试前的准备工作,确保每个测试之间的独立性。这可能涉及到创建临时或者代理数据库、目录、服务器情动进程等相关准备工作
  2.unittest的使用
# 步骤1、引入单元测试
import unittest

# 步骤2:定义测试类,继承TestCase类。
class MyTestClass(unittest.TestCase):

    # 在测试类当中,所有用例运行之前,执行的前置工作。不管有几个用例,且只运行一次。
    # 有3个用例,在第一个用例运行之前,运行一次。
    @classmethod
    def setUpClass(cls):
        print("====我是测试类级别的前置工作===整个测试类,只运行1次!在用例执行之前!====")

    # 在测试类当中,所有用例运行之后,执行的后置工作。不管有几个用例,且只运行一次。
    @classmethod
    def tearDownClass(cls):
        print("====我是测试类级别的后置工作===整个测试类,只运行1次!在所有用例执行完成之后!====")

    # 每一条用例运行之前,前置工作
    def setUp(self):
        print("=====开始运行  一条用例======")

    # 每一条用例运行之后,后置工作
    def tearDown(self):
        print("=====一条用例  运行结束======")

    # 其中函数名称以test_开头的,是一个测试用例。
    def test_upper(self):
        print("***************************")
        # 1、测试数据
        my_str = "iDo"
        # 2、步骤
        res = my_str.upper()
        # 3、断言 == 期望结果与实际结果比对。
        self.assertEqual(res, "IDO", " 不是大写")  # 如果期望与实际不符,那么AssertionError

    def test_upper_is_true(self):
        print("***************************")
        # 1、测试数据
        my_str = "iDo"
        # 2、步骤
        res = my_str.isupper()
        # 期望:True  实际的:res
        self.assertTrue(res)

    def test_who_bigger(self):
        print("***************************")
        # 1、测试数据
        a, b = 100, 244
        # 期望:小于
        self.assertLess(a, b)
  3.测试套件的使用
import unittest
from common.HTMLTestRunnerNew import HTMLTestRunner  #生成html测试报告  HtmlTestRunner()
from common import dir_config    # 测试用例集的目录


# TestSuite实例化
s = unittest.TestSuite()    # 套件实例化
t = unittest.TestLoader()   # 收集器实例化

# 将收集到的用例,放到测试套件当中。
s.addTests(t.discover(dir_config.test_cases_file))

# 打开一个html文件
fs = open(dir_config.html_file, "wb")
# 实例化html结果的用例运行器
runner = HTMLTestRunner(fs,title="前程贷测试报告",description="前程贷接口测试!!",tester="administrator")

# 运行测试套件
runner.run(s)

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号