unittest框架系列五(unittest的TestCase常用api说明)

unittestTestCase常用api说明

欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ

–成都-阿木木


Test Case(测试用例)

class unittest.TestCase(methodName='runTest')

​ TestCase这个类的作用是用于基类当中,具体的测试方法由子类实现。此类实现测试运行程序所需要的接口,使其能够完成驱动测试,每个实例TestCase将运行一个基本方法:名为methodName的方法。在的大多数用法中TestCase,既不会更改methodName也不会重新实现默认runTest()方法。

TestCase实例提供了三组方法:

  • 一组用于运行测试

    • setUp():调用准备测试夹具的方法。在调用测试方法之前立即调用该方法。
    • tearDown():调用测试方法并记录结果后立即调用的方法。
    • setUpClass():在运行单个类中的测试之前调用的类方法。 setUpClass以类作为唯一参数调用,并且必须修饰为classmethod()。在方法上使用@classmethod装饰器装饰。
    • tearDownClass():在单个类中的测试运行后调用的类方法。 tearDownClass以类作为唯一参数调用,并且必须修饰为classmethod()。在方法上使用@classmethod装饰器装饰。
    • run(result=None):运行测试,将结果收集到TestResult作为result传递的对象中。如果省略resultNone,则将创建一个临时结果对象(通过调用该defaultTestResult() 方法)并将其使用。结果对象返回给run()的调用者。
    • skipTest(reson):在测试方法期间调用此方法,reason输入原因。
    • subTest(msg=None,**params):返回一个上下文管理器,该上下文管理器将附带的代码块作为子测试执行。 msgparams是可选的,msg可以为任意值,在子测试失败时会显示这些值,使您可以清楚地识别它们。
    • debug():运行测试而不收集结果。这样可以将测试引发的异常传播到调用方,并可以用来支持在调试器下运行测试。
  • 一组由测试实现用于检查条件和报告故障

  • 还有一些查询方法允许收集有关测试本身的信息,简单介绍四个,还有一些不常用的,例如测试数据清理(针对setUptearDown执行失败的情况),协程,查看官网

    • fail(msg=None):指定断言失败的错误信息msg
        def fail(self, msg="test fail ha ha ha"):
            print("用例执行错误信息:{}".format(msg))
    
    this is a test_upper method
    用例执行错误信息:'FOO' != 'O'
    - FOO
    + O
    
    • id():获取测试方法的全名,包括模块和类名。
        def test_split(self):
            print(self.id())
            print("this is a test_split method")
            s = 'hello world'
            self.assertEqual(s.split(), ['hello', 'world'])
            # check that s.split fails when the separator is not a string
            with self.assertRaises(TypeError):
                s.split(2)
    
    id()的输出为:__main__.TestStringMethods.test_split
    
    • defaultTestResult():返回应用于此测试用例类的测试结果类的实例(如果未向该run()方法提供其他结果实例 )。
    • shortDescription():返回测试的描述,或者None没有提供描述。此方法的默认实现返回测试方法doc string的第一行(如果有)。
        def test_isupper(self):
            """
            这是一个描述
            :return:
            """
            print("this is a test_isupper method")
            print(self.shortDescription())
            self.assertTrue('FOO'.isupper())
            self.assertFalse('Foo'.isupper())
    
    结果为:
    this is a test_isupper method
    这是一个描述
原文地址:https://www.cnblogs.com/chineseluo/p/13710512.html