zoukankan      html  css  js  c++  java
  • unittest框架学习

    1、命名规则

    以test_开头

    1 impot unittest
    2 
    3 class Cs(unittest.TestClass):
    4     def test_01(self):
    5         pass

    2、装饰器:

    @classmethod  只执行一次

    @unitest.skip(reason) 无条件跳过执行测试,描述为什么跳过测试

    @unittest.skipif(conditition,reasonconditition是true时跳过测试

    @unittest.skipunless(condition,reason) condition不是true时跳过测试

    @expected failure 使用@unittest.expectedFailure装饰器,如果test失败了,不计入失败的case里面

     1 import unittest
     2 
     3 
     4 class TsetCase(unittest.TestCase):
     5     # 执行用例前
     6     @classmethod
     7     def tearDownClass(cls):
     8         print('测试结束了!!')
     9 
    10     @classmethod
    11     def setUpClass(cls):
    12         print('开始测试了!!')
    13 
    14     @unittest.skip('不需要执行这条测试用例')
    15     def test_01(self):
    16         a = 1
    17         b = 2
    18         self.assertEqual(a + b, 3)
    19 
    20 if __name__ == '__main__':
    21     unittest.main()

    参考来源:https://www.jianshu.com/p/ba5dbcb5d71b

    3‘、固定套件:

    unittest module包含了编写运行unittest的功能,自定义的test class都要集成

    unitest.TestCase类,test method要以test开头,运行顺序根据名字排序,特殊方法:

    ①tearDownClass(cls)  执行测试前函数

    ②setUpClass(cls)     执行用例后函授

    ③setUp(self)        每次执行测试都要执行一次

    ④tearDown(self)    每次执行测试完成后执行一次

    运行测试方法:

    unittest.main()               执行所有的case   

    unittest.TestSuite()             测试套件

    runner = unittest.TextTestRunner()      实例化TextTestRunner  

    import unittest
    
    
    class TsetCase(unittest.TestCase):
        # 执行用例前
        @classmethod
        def tearDownClass(cls):
            print('测试结束了!!')
    
        @classmethod
        def setUpClass(cls):
            print('开始测试了!!')
    
        def setUp(self):
            print('开始执行')
    
        def tearDown(self):
            print('执行完成')
    
        @unittest.skip('不需要执行这条测试用例')
        def test_01(self):
            a = 1
            b = 2
            self.assertEqual(a + b, 3)
    
        def test_02(self):
            a = 2
            b = 3
            self.assertEqual(a+b,4)
    
    if __name__ == '__main__':
        # unittest.main()
        # suite = unittest.TestSuite()
        # suite.addTest(TsetCase('test_01'))
        # runner = unittest.TextTestRunner()
        # runner.run(suite)
        ljwj = r'F:项目京东登陆TestCases'
        cszx = unittest.defaultTestLoader.discover(start_dir=ljwj , pattern='test_*.py')
        runner = unittest.TextTestRunner()
        runner.run(cszx)

         

  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    链式表的按序号查找
    可持久化线段树——区间更新hdu4348
    主席树——树链上第k大spoj COT
  • 原文地址:https://www.cnblogs.com/zihkj/p/12146287.html
Copyright © 2011-2022 走看看