• unittest框架


    一、unittest工作原理

    unittest最核心的四部分是:TestCase,TestSuite,TestRunner,TestFixture

    TestCase:用户自定义的测试case的基类,调用run()方法,会依次调用setUp方法、执行用例的方法、tearDown方法。

    TestSuite:测试用例集合,可以通过addTest()方法手动增加Test Case,也可以通过TestLoader自动添加Test Case,TestLoader在添加用例时,会没有顺序。

    TestRunner:运行测试用例的驱动类,可以执行TestCase,也可以执行TestSuite,执行后TestCase和TestSuite会自动管理TESTResult。

    TestFixture:简单来说就是做一些测试过程中需要准备的东西,比如创建临时的数据库,文件和目录等,其中setUp()和setDown()是最常用的方法

    整个的流程就是首先要写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TestTestRunner来运行TestSuite,运行的结果保存在TextTestReusult中,整个过程集成在unittest.main模块中。

    1、unittest是python自带的单元测试框架,可以用来作为我们自动化测试框架的用例组织执行框架

    2、unittest流程:写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。

    3、一个class继承unittest.TestCase即是一个TestCase,其中以 test 开头的方法在load时被加载为一个真正的TestCase。

    4、verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告。

    5、可以通过addTest和addTests向suite中添加case或suite,可以用TestLoader的loadTestsFrom__()方法。

    6、用 setUp()、tearDown()、setUpClass()以及 tearDownClass()可以在用例执行前布置环境,以及在用例执行后清理环境

    7、我们可以通过skip,skipIf,skipUnless装饰器跳过某个case,或者用TestCase.skipTest方法。

    8、参数中加stream,可以将报告输出到文件:可以用TextTestRunner输出txt报告,以及可以用HTMLTestRunner输出html报告。

    import unittest
    import HTMLTestRunner
    
    class Test_baidu(unittest.TestCase):
        def setUp(self):
            print('每一个开始了-----------')
    
        def test_1(self):
            print('test_1')
            self.assertEqual('1','2',msg='1!=2')
    
        def test_2(self):
            print('test_2')
            self.assertIsInstance([1,2],list)
    
        def tearDown(self):
            print('每一个结束了----------')
    
        @classmethod
        def setUpClass(cls):
            print('大项目开是啦+++++++++')
    
        @classmethod
        def tearDownClass(cls):
            print('大项目结束了+++++++++++')
    
    
    if __name__ == '__main__':
        suit = unittest.TestSuite()
        suit.addTest(Test_baidu('test_2'))
        suit.addTest(Test_baidu('test_1'))
        runner = unittest.TextTestRunner()
        runner.run(suit)
  • 相关阅读:
    jsp文件编码
    web-inf与meta-inf
    JSP基础语法
    JSP第一章动态网页的基础
    HTML5表单及其验证
    jQuery表单校验
    jquery操作DOM
    jQuery中的事件与动画 笔记整理
    JQuery制作简易的考试答题管理系统
    [POI2008]Sta(树形dp)
  • 原文地址:https://www.cnblogs.com/tarzen213/p/11071674.html
Copyright © 2020-2023  润新知