美文网首页python接口自动化
unittest详解(三) 测试套件(TestSuite)

unittest详解(三) 测试套件(TestSuite)

作者: summer_1a77 | 来源:发表于2019-03-31 17:00 被阅读0次

在前面一章中示例了如何编写一个简单的测试,但有两个问题:

我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢?

一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么进行组织,总不能一个个文件执行吧?

要解决上面两个问题,我们就要用到测试套件(TestSuite)了

if __name__ =='__main__':

suite=unittest.TestSuite()#创建容器

    suite.addTest(TestMethod('测试用例test_01'))#容器中添加用例

    unittest.TextTestRunner.run(suite)#用例执行

假如我有两个系统的登录需要测试,测试用例分别放在两个文件中(cmslogin.py,smelogin.py),现在我需要把这两个文件中的用例添加到一个测试套件中来执行,为此我们要重新建立一个叫run_all.py的文件

import unittestfromcmsloginimport CmsLoginTestfromsmeloginimport SmeLoginTestif__name__=="__main__":

    # 构造测试套件suite = unittest.TestSuite()

    test_cases = [CmsLoginTest("test_login1"),CmsLoginTest("test_login2"),CmsLoginTest("test_login4"),

                  CmsLoginTest("test_login3"),SmeLoginTest("test_login1"),SmeLoginTest("test_login2")]

    suite.addTests(test_cases)

    # 执行测试runner = unittest.TextTestRunner(verbosity=2)

    runner.run(suite)

还可以用addTests + TestLoader方法来添加用例,但是这种方法是无法对case进行排序的

import unittestfromcmsloginimport CmsLoginTestfromsmeloginimport SmeLoginTestif__name__=="__main__":

    # 构造测试套件suite = unittest.TestSuite()

    # 第一种方法:传入'模块名.TestCase名'suite.addTests(unittest.TestLoader().loadTestsFromName('cmslogin.CmsLoginTest'))

    suite.addTests(unittest.TestLoader().loadTestsFromName('smelogin.SmeLoginTest'))

    # 这里还可以把'模块名.TestCase名'放到一个列表中suite.addTests(unittest.TestLoader().loadTestsFromNames(['cmslogin.CmsLoginTest','smelogin.SmeLoginTest']))

    # 第二种方法:传入TestCase    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(CmsLoginTest))

    # 执行测试runner = unittest.TextTestRunner(verbosity=2)

    runner.run(suite)

原文转载自https://www.cnblogs.com/eastonliu/p/9145255.html

相关文章

网友评论

    本文标题:unittest详解(三) 测试套件(TestSuite)

    本文链接:https://www.haomeiwen.com/subject/hydubqtx.html