gupanpan
import unittest


testDir = \'./\'
suits = unittest.defaultTestLoader.discover(testDir, pattern=\'test*.py\')


if __name__ == \'__main__\':
    unittest.TextTestRunner().run(suits)

 


  测试用例的执行顺序

    测试用例的执行顺序涉及多个层级: 多个测试目录 > 多个测试文件 > 多个测试类 > 多个测试方法(测试用例)

    unittest 提供的 main() 和 discover() 方法是按照什么顺序执行测试用例的呢?

    因为 unittest 默认根据 ASCII 码的顺序加载测试用例的(字母与数字顺序为 0-9, A-Z, a-z),
    所以 test_aaa.py  会先于 test_bbb.py 执行
    test_aaa() 方法  会先于 test_bbb()方法执行。
    所以如果想让某个测试文件先执行, 可以在命名上进行控制。

    除了命名外, 我们可以通过 TestSuite 类,通过 assTest() 方法按照一定的顺序来加载测试用例。
----------------------------------------------------------------------------------------------------


    执行多级目录的测试用例

    当测试用例的数量达到一定数量级时,要考虑目录划分,
    比如规划如下目录:

    testProject
        |----/test_case/
        |    |----test_bbb
        |    |    |----test_cccc
        |    |    |    |----test_c.py
        |    |    |----test_b.py
        |    |----/test_dddd/
        |    |    |----test_d.py
        |    |----test_a.py
        |----test_run.py

    对于上面的目录结构,如果将 discover() 方法中的 start_dir 参数定义为 “./test_case” 目录,那么只能加载本目录下的
test_a.py 。 那么 test_case/ 子目录下的文件呢? 方法很简单, 就是在每一个子目录里放一个 __init__.py 文件。
    __init__文件的作用是将一个目录标记为一个标准的 Python 模块。

分类:

技术点:

相关文章:

  • 2021-10-17
  • 2021-09-04
  • 2021-10-07
  • 2018-02-27
  • 2021-04-02
  • 2022-01-21
  • 2021-09-14
猜你喜欢
  • 2021-10-07
  • 2021-10-23
  • 2021-10-07
  • 2021-09-13
  • 2021-11-03
  • 2021-05-26
  • 2021-08-05
相关资源
相似解决方案