目录
介绍
概念分析
TestCase
TestSuite
TestRunner
TestLoader
Test fixture
介绍
unittest是python单元测试框架,类似于Junit框架,其中有5个比较重要的概念,在这里和大家分享一下。
unittest中的5个用法分别为test fixture,test case,test suite,test runner,test loader,掌握这几种方法可以更好地帮助我们使用unittest。
概念分析
TestCase
一个TestCase的实例就是一个测试用例。一个测试用例包括测试前环境的搭建(setup),执行测试代码,以及测试后环境的还原,单元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。例如:
class MyTestCase03(unittest.TestCase): #引用unittest.Testcase
def test01(self):
print('test01')
def test02(self):
print('test02')
TestSuite
多个测试用例集合在一起,就是TestSuite,也可以理解为多个测试用例的合集,而且TestSuite也可以嵌套TestSuite。
TestRunner
TestRunner是用来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法,例如:
class MyTestCase04(unittest.TestCase):
def test03(self):
print('test03')
def test04(self):
print('test04')
if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(suite) #使用run()方法来执行测试用例
TestLoader
TestLoader是用来加载TestCase到TestSuite中的,其中几个loadTestFrom方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TserSuite实例。
class MyTestCase04(unittest.TestCase):
def test03(self):
print('test03')
def test04(self):
print('test04')
if __name__ == '__main__':
loader = unittest.TestLoader()
suite = unittest.TestSuite()
suite.addTest(loader.loadTestsFromTestCase(MyTestCase04)) #加载测试用例
Test fixture
Test Fixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置,这些装置可以是数据,可以是环境配置也可以是一个运行前状态,通过覆盖TestCase()的setUp()和tearDown()方法来实现,例如我们在测试用例前定义一个setup、teardown,这样每执行一个用例都会先执行setup、tewrdown方法。
class MyTestCase(unittest.TestCase):
def setUp(self) -> None:
print('setup...')
def tearDown(self) -> None:
print('teardown...')
def test01(self):
print('test01')
def test02(self):
print('test02')
if __name__ == '__main__':
unittest.main()



