python unittest使用
uinittest使用
unittest.TestCase
实例:
import unittest
class Test1(unittest.TestCase):
def test_x1(self):
self.a=1
def test_x2(self):
print("a:",self.a)
class Test2():
def x1(self):
self.b=1
def x2(self):
print("b:",self.b)
#测试调用1
unittest.main()
#测试调用2
A=Test2()
A.x1()
A.x2()
- 首先 unittest.TestCase 中测试用例方法 需要用test开头,后面调用 unittest.main()就会自动执行这些用例方法
- unittest.main() 是会按顺序执行 Test1类里的函数的,但是又和普通的类实例后,逐个调用方法有区别
明显测试调用1逐个执行test_x1和test_x2方法,执行到test_x2的时候,会报错没有定义变量a
而测试调用2 不会报变量b没有定义,因为在执行A.x1()的时候就已经初始化变量b了。所以不会报错
TestSuite
- 使用上面的class Test1(unittest.TestCase)类的定义
suite=unittest.TestSuite()
suite.addTest(Test1('test_x1'))
suite.addTest(Test1('test_x2'))
#或者使用
#suite.addTests([Test1('test_x1'),Test1('test_x2')]) 相当于上面两句
runner = unittest.TextTestRunner()
runner.run(suite)