unittest是Python中的单元测试框架,可以用来作自动化测试框架的用例组织执行框架,它的优点是提供用例组织与执行方法;提供比较方法;提供丰富的日志、清晰的报告。
unittest一个类class继承 unittest.TestCase,就是一个测试用例。一个TestCase的实例就是一个测试用例,就是一个完整的测试流程。unittest所有的case以test开头,且只会执行以test开头定义的方法。
#coding:utf-8
import unittest
class TestMethod(unittest.TestCase):
#每次方法之前执行
def setUp(self):
print('test-->setup')
#每次方法之后执行
def tearDown(self):
print('test-->tearDown')
def test_01(self):
print('这是测试方法一')
def test_02(self):
print('这是第二个测试方法')
if __name__ == '__main__':
unittest.main()
执行结果
由此可见每次执行case的时候都会去执行一次setUp跟tearDown,那么我不需要每次都去执行,只需要执行一次怎么去处理呢?
这里就要用到unittest 的类方法,这个类方法在整个测试中只执行一次
添加类方法
#coding:utf-8
import unittest
class TestMethod(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('类执行之前的方法')
@classmethod
def tearDownClass(cls):
print('类执行之后的方法')
#每次方法之前执行
def setUp(self):
print('test-->setup')
#每次方法之后执行
def tearDown(self):
print('test-->tearDown')
def test_01(self):
print('这是测试方法一')
def test_02(self):
print('这是第二个测试方法')
if __name__ == '__main__':
unittest.main()
执行结果如下
image.png
网友评论