使用unittest2框架,做简单的技术实验,了解框架基本使用及执行原理
代码:
#一个自动化测试框架,关于用例执行的实验
#导入包
import unittest2
#创建类,并继承代码库中的TestCase,表示当前类,是测试用例类
class UnittestDemo(unittest2.TestCase):
#重写setUpClass()方法
@classmethod
def setUpClass(cls):
print('setUpClass方法')
print('')
def setUp(self):
print('在测试用例开始前,要做的初始化条件')
def test_login(self):
print('以test开头的测试用例执行实验')
self.func_aa()
def func_aa(self):
print('不以test开头的方法,是普通方法,只有被调用才会执行,放在test_login()里调用了!')
def test_regi(self):
print('每条测试用例执行前,需要执行一次setUp()、tearDown()方法')
def tearDown(self):
print('在测试用例结束后,要做的场景还原')
print('')
#重写tearDownClass方法
@classmethod
def tearDownClass(cls):
print('tearDownClass方法')
if __name__ == '__main__':
unittest2.main()
光标在main()方法处,运行结果:
setUpClass方法
在测试用例开始前,要做的初始化条件
以test开头的测试用例执行实验
不以test开头的方法,是普通方法,只有被调用才会执行,放在test_login()里调用了!
在测试用例结束后,要做的场景还原
在测试用例开始前,要做的初始化条件
每条测试用例执行前,需要执行一次setUp()、tearDown()方法
在测试用例结束后,要做的场景还原
tearDownClass方法
Ran 2 tests in 0.002s
OK
最后收尾的小结:
按住ctrl键,点击unittest2.TestCase类,可以看到这个类中,继承了unittest.TestCase
我们用的unittest2,是unittest的升级版本,unittest.TestCase打开这个类,可以找到**setUp()、tearDown()**是写的pass空方法,所以需要重写这两个方法
按住ctrl键,点击unittest2.TestCase类,进入这个类中,还有两个方法setUpClass()、tearDownClass()、方法。这两个方法也需要重写,方法前要加注释器【@classmethod】
重写父类中的setUpClass()方法,是类中,所有测试用例执行前,要做的初始化条件
重写父类中的setUp()方法。在每条测试用例开始前,要做的预置条件
声明一个以test开头的方法,表示这是一个测试用例方法,该方法可以直接运行。
test开头的测试用例执行顺序,按照test后的字母排列顺序执行
声明一个不以test开头的方法,是普通方法,只有被调用才会执行
重写父类中的tearDown()方法。在测试用例结束后,要做的场景还原
重写父类中的tearDownClass()方法,是类中,所有测试用例执行后,要做的场景还原工作(比如注册后,再次注册不成功)
每条测试用例执行前,需要执行一次setUp()、tearDown()方法
unittest2.main()解释:只有在当前文件运行,就会执行unittest2.main()。表示调用unittest2的主方法,执行当前类中的所有方法
运行时,如果光标指在某一个test开头的测试类上,就只运行当前的测试类;如果光标在unittest2.main()处,就会执行所有的测试用例方法