UnitTest框架

2020-03-10  本文已影响0人  清水秋香
UnitTest概念与用法

UnitTest是python自带的单元测试框架,主要适用于单元测试,可以对多个测试用例进行管理和封装
UnitTest也叫PyUnit,它提供了很多类和方法来处理各种测试工作

suite = unittest.TestSuite()
suite.addTest(MyTest('test1'))
suite.addTest(MyTest('test2))

方法二:用例放入列表中,在添加到suite

suite = unittest.TestSuite()
list = [类名1("方法名1"),类名2("方法名2")]
suite.addTests(list)

方法三:通过TestLoader类的discover方法来

unittest.defaultTestLoader.discover('用例所在模块',pattern='*通配*.py')
discover(start_dir,pattern="test*.py",top_level_dir=None)

case_dir: 这个是待执行用例的目录
pattern:这个是匹配脚本名称的规则。test*.py意思是匹配test开头的所有脚本
top_lever_dir: 这个是顶层目录的名称,一般默认等于None就行。

runver = unittest.TestTestRunner()  #实例化TestRunner类
runner.run(suite)#执行用例
reportFile = open('./report/report.html,'wb')
runner = HTMLTestRunner(stream=reportFile,verbosity=1,description='用例执行详细信息',title = '测试报告')
runner.run(suite)
基本操作
import unittest

class Testmode1(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    @classmethod
    def setUpClass(cls):
        pass
    @classmethod
    def tearDownClass(cls):
        pass
    #条件判断,是否跳过
    @unittest.skipIf(6 > 5, '这个case不执行') 
    def test_01(self):
        print('test1')
    @unittest.skip()
    def test_02(self):
        print('test2')
    def test_03(self):
        print('test3')

if __name__ == '__main__':
    #运行顺序1 3 2
    suite = unittest.TestSuite()
    suite.addTest(Testmode1('test_01'))
    suite.addTest(Testmode1('test_03'))
    suite.addTest(Testmode1('test_02'))
    runner = unittest.TextTestRunner()
    runner.run(suite)
    #运行顺序1 3 2
    suite = unittest.TestSuite()
    suite.addTests([Testmode1('test_01'),Testmode1('test_03'),Testmode1('test_02')])
    runner = unittest.TextTestRunner()
    runner.run(suite)
from Unittest.mode1 import Testmode1
from Unittest.mode2 import Testmode2
from Unittest.mode3 import Testmode3
import unittest

case_01 = unittest.TestLoader().loadTestsFromTestCase(Testmode1)
case_02 = unittest.TestLoader().loadTestsFromTestCase(Testmode2)
case_03 = unittest.TestLoader().loadTestsFromTestCase(Testmode3)
suite = unittest.TestSuite([case_01,case_02,case_03])
unittest.TextTestRunner().run(suite)
import unittest
suite = unittest.defaultTestLoader.discover('Unittest',pattern='mode*.py' )
unittest.TextTestRunner().run(suite)
上一篇 下一篇

猜你喜欢

热点阅读