一、前置/后置条件
setUp():用于测试用例执行前的初始化工作。如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器。
tearDown():用于测试用例执行之后的善后工作。如关闭数据库连接。关闭浏览器。
setUpClass():用于测试用例执行前的初始化工作,和setUp()区别如下。
tearDownClass():用于测试用例执行之后的善后工作,和tearDown()区别如下。
# coding:utf-8 import unittest import time class Test1(unittest.TestCase): '''测试类,是多个测试用例的集合,可以把一些相同的操作写成一个类''' def setUp(self): # 每条用例开始时都得执行一次(执行多次) print("-----开始测试!!!----") def tearDown(self): # 每条用例结束后都得执行一次(执行多次) print("-----测试结束!!!----") @ classmethod # 必须要加@classmethod装饰器 def setUpClass(cls): # 只有最开始的时候才会执行(执行一次) print("-----打开浏览器----") @ classmethod def tearDownClass(cls): # 只有结束后才会执行(执行一次) print("-----关掉浏览器------") if __name__ == '__main__': unittest.main()
二、装饰器
unittest.skip(): 装饰器,当运行用例时,有些用例可能不想执行等,可用装饰器暂时屏蔽该条测试用例。一种常见的用法就是比如说想调试某一个测试用例,想先屏蔽其他用例就可以用装饰器屏蔽。
@unittest.skip("由于XX原因,暂时跳过该用例") # : skip(reason)装饰器:无条件跳过装饰的测试,并说明跳过测试的原因。 @unittest.skipIf(reason) # skipIf(condition, reason)装饰器:条件为真时,跳过装饰的测试,并说明跳过测试的原因。 @unittest.skipUnless(reason) # skipUnless(condition, reason)装饰器:条件为假时,跳过装饰的测试,并说明跳过测试的原因。 @unittest.expectedFailure() # expectedFailure()测试标记为失败。