unittest2框架用例执行的实验
# 导入包
import unittest2
# 创建类,并继承代码库中的TestCase,表示当前类,是测试用例类
class UnittestDemo(unittest2.TestCase):
# 重写父类中的setUpClass()方法
@classmethod
def setUpClass(cls):
print('setUpClass方法,在所有测试用例执行开始前执行一次')
# print('')
def setUp(self):
print('setUp方法,在每条测试用例开始前执行一次')
def test_login(self):
print('第一条以test开头的测试用例会自动执行')
self.func_aa()
def func_aa(self):
print('不以test开头的方法,是普通方法,只有被调用才会执行,在test_login()里调用了!')
def test_regist(self):
print('第二条以test开头的测试用例会自动执行')
def tearDown(self):
print('tearDown方法,在每条测试用例结束后执行一次')
# print('')
# 重写tearDownClass方法
@classmethod
def tearDownClass(cls):
print('tearDownClass方法,在所有测试用例执行完成后执行一次')
if __name__ == '__main__':
unittest2.main()
执行结果如下
Ran 2 tests in 0.002s
OK
setUpClass方法,在所有测试用例执行开始前执行一次
setUp方法,在每条测试用例开始前执行一次
第一条以test开头的测试用例会自动执行
不以test开头的方法,是普通方法,只有被调用才会执行,在test_login()里调用了!
tearDown方法,在每条测试用例结束后执行一次
setUp方法,在每条测试用例开始前执行一次
第二条以test开头的测试用例会自动执行
tearDown方法,在每条测试用例结束后执行一次
tearDownClass方法,在所有测试用例执行完成后执行一次
下面先来看看父类中的几个方法:
- setUpClass方法和setUp方法在父类中并没有具体的实现,setUpClass方法是在类的开始执行的,setUp方法是在每条用例执行前执行的。
- tearDownClass方法和tearDown方法在父类中并没有具体的实现,tearDownClass方法是在当前这个类执行完毕后执行的一个收尾工作的方法,tearDown方法是在每条测试用例执行完成后执行的一个方法。
- 我们可以根据这几个方法的特性来更好的实现我们的业务逻辑。
- 我们可以声明一个以test开头的方法,表示这是一个测试用例方法,该方法可以被直接运行。
- test开头的测试用例执行顺序,是按照test后的字母排列顺序执行,根据此特点我们可以自由的设计用例执行的顺序。
- 不以test开头的方法,是普通方法,只有被调用才会执行。
- 每条测试用例执行前,需要执行一次setUp()、每条测试用例执行后,需要执行一次tearDown()方法。
- unittest2.main()解释:只有在当前文件运行,才会执行unittest2.main()。表示调用unittest2的主方法,执行当前类中的所测试有方法
注意: 运行时,如果光标在某一个test开头的测试方法上,就只运行当前的测试方法;如果光标在unittest2.main()处,就会执行所有的测试用例方法
|