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)

posted on 2018-07-14 13:58  游荡的鱼  阅读(780)  评论(0编辑  收藏  举报

导航