• unittest--运行不同文件下的测试


    前戏

    在前面我们都是在一个py文件里写测试用例,当然在实际项目中,肯定不会这么干,这样不是一个优秀的测试攻城狮,这时候我们就要查找不同目录下的测试来进行运行了

    运行不同文件下的用例

    先来看下文件结构

    import unittest
    
    
    class Test_case01(unittest.TestCase):
    
        def test01(self):
            print('test01')
    
        def test02(self):
            print('test02')
    
        def test03(self):
            print('test03')
    
        def test04(self):
            print('test04')
    
        def test05(self):
            print('test05')
    test_01.py
    import unittest
    
    
    class Test_case02(unittest.TestCase):
    
        def test01(self):
            print('test01')
    
        def test02(self):
            print('test02')
    
        def test03(self):
            print('test03')
    
        def test04(self):
            print('test04')
    
        def test05(self):
            print('test05')
    test_02.py
    import unittest
    
    
    class Test_case03(unittest.TestCase):
    
        def test01(self):
            print('test01')
    
        def test02(self):
            print('test02')
    
        def test03(self):
            print('test03')
    
        def test04(self):
            print('test04')
    
        def test05(self):
            print('test05')
    test_03.py

    testrun.py

    import unittest
    from Testmodule.test_01 import Test_case01
    from Testmodule.test_02 import Test_case02
    from Testmodule.test_03 import Test_case03
    
    case_01 = unittest.TestLoader().loadTestsFromTestCase(Test_case01)
    case_02 = unittest.TestLoader().loadTestsFromTestCase(Test_case02)
    case_03 = unittest.TestLoader().loadTestsFromTestCase(Test_case03)
    suote = unittest.TestSuite([case_01, case_02, case_03])  # 添加到套件里面
    unittest.TextTestRunner().run(suote)  # 执行所有的

    执行结果

    ...............
    test01
    test02
    test03
    test04
    test05
    test01
    test02
    test03
    test04
    test05
    test01
    test02
    test03
    test04
    test05

    使用discover执行所有用例

    上面我们一个一个的添加了用例,如果有几十个py文件,难道要添加几十次吗?答案肯定不是的,我们可以使用discover来批量运行

    discover里面有三个参数

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

    我们还是以上面的三个py文件为例,这时候更改testrun.py

    import unittest
    
    
    class Run_allCase(unittest.TestCase):
        def run_case(self):
            case_path = r'E:django-projectNB_crmTestmodule'
    
            # 第一个参数,文件路径,第二个参数,匹配规则,如果本来就是以test开头的,则可不传
            suite = unittest.defaultTestLoader.discover(case_path, 'test*.py')
            unittest.TextTestRunner().run(suite)
    
    
    if __name__ == '__main__':
        r = Run_allCase()
        r.run_case()

    结果还是和上面的运行结果一样,我们可以看出来,使用这种方法,很简单,以后直接加py文件就可以了,不需要再添加到里面

  • 相关阅读:
    JAVA 程序pending 数据库锁
    圆形相遇问题
    DROP TABLE
    sed 删除
    JVM程序计数器
    《神奇的数学》颠覆你对数学的初始感觉
    error "OPatch cannot find a valid oraInst.loc file to locate Central Inventory
    【linux】提醒"libc.so.6: version `GLIBC_2.14' not found"系统的glibc版本太低
    Linux 常用命令随笔(一)
    国际结算业务--国际结算中的票据
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11408435.html
Copyright © 2020-2023  润新知