zoukankan      html  css  js  c++  java
  • 【自动化测试】unitest

    • 概念

        基于断言机制来判断输入参数后函数的输出与期望结果的是否一致。

    • unitest.TestCase中内置的assertXxxx方法
    序号断言方法断言描述
    1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
    2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
    3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
    4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
    5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
    6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
    7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
    8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
    9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
    10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
    11 assertIsInstance(obj, cls, msg=None) 判断一个变量是否是某个类型
    12 assertNotIsInstance(obj, cls, msg=None) 判断一个变量是否不是某个类型
    • 运行测试

      增加如下代码,可以运行当前源文件中的所有测试用例。

    if __name__=='__main__':
        unitest.main()

      也可以使用

    python -m unitest 测试文件

    如果没有指定测试用例,该命令将自动查找该目录下的所有测试用例并进行运行。

    • 使用测试包(TestSuite)

    使用测试包可以将多个测试用例组织起来,使用测试运行器(TestRunner)来运行该测试包中所含的所有测试用例。

    import unitest
    from PythonTest.python_unittest import TestFkMath
    from PythonTest.test_hello import TestHello
    
    test_cases = (TestHello, TestFkMath)
    
    def whole_suite():
        # 创建测试加载器
        loader = unittest.TestLoader()
    
        # 创建测试包
        suite = unittest.TestSuite()
    
        # 遍历所有测试类
        for test_class in test_cases:
            # 从测试类中加载测试用例
            tests = loader.loadTestsFromTestCase(test_class)
            # 将测试用例添加到测试包中
            suite.addTests(tests)
        return suite
    
    
    if __name__ == "__main__":
        with open('test_report.txt', 'a') as f:
            # 创建测试运行器(TestRunner),并将测试报告输出到文件中
            runner = unittest.TextTestRunner(verbosity=2, stream=f)
            runner.run(whole_suite())
    • 测试固件

      setUp() 用于初始化测试固件

      tearDown() 用于销毁测试固件

    • 跳过测试用例,两种方式

      (1)使用skipXxx装饰器跳过测试用例。@unittest.skip(reason),@unittest.skipIf(condition, reason),@unittest.skipUnless(condition,reason)

      (2)使用skipTest()方法跳过

    self.skipTest('临时跳过test_add')
  • 相关阅读:
    创建Django项目
    CVE-2011-0104:Microsoft Office Excel 栈溢出漏洞修复分析
    HDU 1089 到1096 a+b的输入输出练习
    ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃
    HDU 1406 完数
    ocrosoft 1015 习题1.22 求一元二次方程a*x^2 + b*x + c = 0的根
    php-amqplib库操作RabbitMQ
    rabbitmq 使用PhpAmqpLib
    RabbitMQ的持久化
    Rabbitmq各方法的作用详解
  • 原文地址:https://www.cnblogs.com/amberwang2018/p/14856324.html
Copyright © 2011-2022 走看看