第一种test case 简单的组织方法
unittest.TestCase
类,unittest模块会识别到这个类是要跑的test case。test
开头(一个方法是一个测试用例)unittest.main()
函数来运行类中所有以test开头的方法import unittest
class test(unittest.TestCase):
def test_case1(slef):
pass
def test_case2(slef):
pass
if __name__ == "__main__":
unittest.main()
setUp()方法是unittest 类中的成员方法,在使用时需要继承父类(unittest),重写父类中的方法setUP().
用于测试用例执行前的初始化工作,在执行每个测试用例开始
时跑一次这个方法。一个类中有几个测试用例就会跑几次这个方法。
在每个测试用例之后
跑一次的方法。用于测试用例执行后的善后工作,还原测试环境和数据。
setUpClass()方法是类方法,类的静态方法,只在整个类运行前加载一遍,之后无论这个类被实例化多少次,都不会再加载。
用于测试用例所在的类,执行测试用例之前执行。
需要注意的是,类的静态方法中的变量需要定义成静态变量,以供之后的类的成员方法test case去使用, 静态变量的调用可以直接用slef.
去调用。
a = None
b = None
@classmethod
def setUpClass(cls):
cls.a = a
cls.b = b
def test_case1(self):
slef.a .get(id)
slef.b.get(id)
用于测试用例所在的类,执行所有测试用例之后再执行的方法。
用于测试用例放在不同的文件里,整个测试模块执行开始和结束。
无条件跳过装饰器的测试,可以说明跳过的原因
@unittest.skip('only run P1 test cases')
def test_case01(self):
pass
条件为真时跳过装饰器的测试,并说明跳过的原因
第二种组织形式
suite = unittest.TestSuite()
suite = addTest(Classname(test_case1))
suite = addTest(Classname(test_case3))
unittest.TextTestRunner(suite)
第三种组织方式
test_case1_10.py
test_case11_20.py
if __name__ == "__main__":
test_dir = './'
pattern = 'test_*.py'
discover = unittest.defaultTestLoader.discover(test_dir, pattern = patten )
unittest.TextTestRunner().run(discover)