测试用例的执行顺序

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 模块。

posted @ 2020-02-15 14:31  gupanpan  阅读(977)  评论(0)    收藏  举报