unittest是一个python的测试框架,看了很多文章,整理了一个自己的理解:如下图
整体流程就是:
(1)首先需要完成的是TestCase,一个TestCase实例就是一个测试用例。
(2)通过TestLoader加载到TestSuite中;
(3)通过TestRunner来运行已经加载了TestCase的TestSuite,产生的结果保存在TestResult里。
整个过程都在unittest.main()中。
eg:
import unittest
class UserCase(unittest.TestCase):
def testAddUser(self):
print("add a user")
def testDelUser(self):
print("delete a user")
if __name__ == '__main__':
unittest.main()
下面是我自己测试过程中的一个例子:
代码如下:
functions.py
def fun_div(x):
return x/2
def fun_add(x):
return x+2
def fun_minus(x):
return x-2
def fun_multi(x):
return x*2
testFun.py
import unittest
from test.functions import fun_add,fun_minus,fun_multi,fun_div
class testFun(unittest.TestCase):
times = 0
@classmethod
def setUpClass(cls):
testFun.times += 1
print("setUpClass")
@classmethod
def tearDownClass(cls):
testFun.times += 1
print("tearDownClass")
def test1(self):
self.assertEqual(2,fun_div(3))
# self.failUnlessEqual(2,2)
# self.assertTrue(1<2)
# self.failUnless(2 ==2)
# self.assertNotEquals(2,1)
if __name__ == '__main__':
suit = unittest.TestCase()
suit.addTest(testFun("test1"))
runner = unittest.TextTestRunner()
runner.run(suit)
运行的结果如下: