zoukankan      html  css  js  c++  java
  • Python unittest discover()方法与执行顺序

    一、discover更多测试用例

    可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰

    但通过addTest()添加、删除测试用例就变得非常麻烦

    TestLoader 类中提供的discover()方法可以自动识别测试用例

    discover(start_dir,pattern='test*.py',top_level_dir= None)

    找到指定目录下所有测试模块,并可递归查到子目录下的测试模块,只有匹配到文件名时才加载

    start_dir:要测试的模块名或测试用例目录

    pattern='test*.py':表示用例文件名的匹配原则。此处匹配以“test”开头的.py 类型的文件,* 表示任意多个字符

    top_level_dir= None 测试模块的顶层目录,如果没有顶层目录,默认为None

    实例1:

     1 import unittest
     2 test_dir = './'
     3 #定义测试目录为当前目录
     4 discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
     5 
     6 if __name__ == '__main__':
     7     runner = unittest.TextTestRunner()
     8     runner.run(discover)
     9 discover()方法会自动根据测试目录test_dir 匹配查找测试用例文件,并将查找到的测试用例组装到测试套件中,因此,可以直接通过
    10 run()方法执行discover,大大简化了测试用例的查找与执行
    11 
    12 实例2:
    13 suite = unittest.TestSuite()
    14 all_cases = unittest.defaultTestLoader.discover(PY_PATH,'Test*.py')
    15 #discover()方法会自动根据测试目录匹配查找测试用例文件(Test*.py),并将查找到的测试用例组装到测试套件中
    16 [suite.addTests(case) for case in all_cases]
    17 report_html = BeautifulReport.BeautifulReport(suite)
    二、用例执行的顺序
    unittest 框架默认根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z
    如果要让某个测试用例先执行,不能使用默认的main()方法,需要通过TestSuite类的addTest()方法按照一定的顺序来加载

    来源:https://blog.csdn.net/happyuu/article/details/80683161
  • 相关阅读:
    redis info详解
    redis数据类型-有序集合
    redis数据类型-集合类型
    redis数据类型-列表类型
    python——井字小游戏
    python——元组和字典学习笔记
    docker学习笔记
    中型公司网络架构拓扑与详解
    python——将图片转换为字符编码(linux版的)
    python——冒泡排序练习
  • 原文地址:https://www.cnblogs.com/liuyanhang/p/11121013.html
Copyright © 2011-2022 走看看