unittest是Python中的單元測(cè)試框架,可以用來(lái)作自動(dòng)化測(cè)試框架的用例組織執(zhí)行框架,它的優(yōu)點(diǎn)是提供用例組織與執(zhí)行方法;提供比較方法;提供豐富的日志、清晰的報(bào)告。
unittest一個(gè)類class繼承 unittest.TestCase,就是一個(gè)測(cè)試用例。一個(gè)TestCase的實(shí)例就是一個(gè)測(cè)試用例,就是一個(gè)完整的測(cè)試流程。unittest所有的case以test開(kāi)頭,且只會(huì)執(zhí)行以test開(kāi)頭定義的方法。
#coding:utf-8
import unittest
class TestMethod(unittest.TestCase):
#每次方法之前執(zhí)行
def setUp(self):
print('test-->setup')
#每次方法之后執(zhí)行
def tearDown(self):
print('test-->tearDown')
def test_01(self):
print('這是測(cè)試方法一')
def test_02(self):
print('這是第二個(gè)測(cè)試方法')
if __name__ == '__main__':
unittest.main()
執(zhí)行結(jié)果

image.png
由此可見(jiàn)每次執(zhí)行case的時(shí)候都會(huì)去執(zhí)行一次setUp跟tearDown,那么我不需要每次都去執(zhí)行,只需要執(zhí)行一次怎么去處理呢?
這里就要用到unittest 的類方法,這個(gè)類方法在整個(gè)測(cè)試中只執(zhí)行一次
添加類方法
#coding:utf-8
import unittest
class TestMethod(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('類執(zhí)行之前的方法')
@classmethod
def tearDownClass(cls):
print('類執(zhí)行之后的方法')
#每次方法之前執(zhí)行
def setUp(self):
print('test-->setup')
#每次方法之后執(zhí)行
def tearDown(self):
print('test-->tearDown')
def test_01(self):
print('這是測(cè)試方法一')
def test_02(self):
print('這是第二個(gè)測(cè)試方法')
if __name__ == '__main__':
unittest.main()
執(zhí)行結(jié)果如下

image.png