unittest框架系列五(unittest的TestCase常用api说明)
unittest的TestCase常用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传递的对象中。如果省略result或None,则将创建一个临时结果对象(通过调用该defaultTestResult()方法)并将其使用。结果对象返回给run()的调用者。skipTest(reson):在测试方法期间调用此方法,reason输入原因。subTest(msg=None,**params):返回一个上下文管理器,该上下文管理器将附带的代码块作为子测试执行。msg和params是可选的,msg可以为任意值,在子测试失败时会显示这些值,使您可以清楚地识别它们。debug():运行测试而不收集结果。这样可以将测试引发的异常传播到调用方,并可以用来支持在调试器下运行测试。
-
一组由测试实现用于检查条件和报告故障
-
方法 检查 assertEqual(a, b)a == bassertNotEqual(a, b)a != bassertTrue(x)bool(x) is TrueassertFalse(x)bool(x) is FalseassertIs(a, b)a is bassertIsNot(a, b)a is not bassertIsNone(x)x is NoneassertIsNotNone(x)x is not NoneassertIn(a, b)a in bassertNotIn(a, b)a not in bassertIsInstance(a, b)isinstance(a, b)assertNotIsInstance(a, b)not isinstance(a, b)所有
assert方法都接受一个msg参数,如果指定了该参数,该参数将用作失败时的错误消息,例如:assertEqual(first, second, msg=None)还有一些不常用的断言方法可以参考官网地址官网
-
-
还有一些查询方法允许收集有关测试本身的信息,简单介绍四个,还有一些不常用的,例如测试数据清理(针对
setUp和tearDown执行失败的情况),协程,查看官网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 + Oid():获取测试方法的全名,包括模块和类名。
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_splitdefaultTestResult():返回应用于此测试用例类的测试结果类的实例(如果未向该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 这是一个描述

浙公网安备 33010602011771号