很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。
案例分析
- 本篇通过最简单案例详细讲解unittest执行顺序。
import unittest
class Test(unittest.TestCase):
def setUp(self):
print("==========setup===============")
def tearDown(self):
print("===========teardown============")
def test01(self):
print("============test01=============")
def test03(self):
print("===========test03==============")
def test02(self):
print("=============test02=============")
def addtest(self):
print("=============testadd=============")
if __name__ == "__main__":
unittest.main()
- 运行结果:
collecting ... collected 3 items
test_demo02.py::Test::test01 PASSED [ 33%]==========setup===============
============test01=============
===========teardown============
test_demo02.py::Test::test02 PASSED [ 66%]==========setup===============
=============test02=============
===========teardown============
test_demo02.py::Test::test03 PASSED [100%]==========setup===============
===========test03==============
===========teardown============
============================== 3 passed in 0.04s ==============================
- 从执行结果可以看出几点
-
先执行的前置
setUp
,然后执行的用例(test*)
,最后执行的后置tearDown
-
测试用例
(test*)
的执行顺序是根据01-02-03执行的,也就是说根据用例名称
来顺序执行的,按照数据1,2,3或者a,b,c -
addtest(self)这个方法没执行,说明只执行test开头的用例