• 嵌套测试套件,多个suite组合的例子 分类: unittests 2013-12-10 10:59 350人阅读 评论(0) 收藏


    嵌套测试套件

    我们经常希望将一些测试套件组合在一起来一次性的测试整个系统。这很简单,因为多个TestSuite可以被加入进另一个TestSuite,就如同 多个TestCase被加进一个TestSuite中一样:

           suite1 = module1.TheTestSuite()
           suite2 = module2.TheTestSuite()
           alltests = unittest.TestSuite((suite1, suite2))
     
    在发布的软件包中的“examples”目录中,"alltests.py”提供了使用嵌套测试套件的例子

         
    事实上,TestSuite除了可以包含TestCase外,也可以包含TestSuite,从而可以构成一个更加庞大的测试用例集:
    suite1 = mysuite1.TheTestSuite()
    suite2 = mysuite2.TheTestSuite()
    alltests = unittest.TestSuite((suite1, suite2)) #unittest.TestSuite()也可以接收其他TestSuite类的实例

     

    需要注意的是,当使用makeSuite方法时,测试套件运行每个测试用例的顺序是由测试方法名根据Python内建函数cmp所排序的顺序而决定的。


    以下例子包括3个模块文件:
    module_sample.py
    module_shuffle.py
    testRandom.py

    分别将 module_sample、module_shuffle模块中的suite加入testRandom模块中的suite,形成更加庞大的测试用例集


    module_sample.py

    #coding:utf-8
    
    import unittest
    import random
    
    class sampleTestCase(unittest.TestCase):
        def setUp(self):
            self.seq= range(10)
        def testsample(self):
            self.assertTrue(random.sample(self.seq,1) in self.seq,'sample failure')
    
    
    def suite():
        suite1 = unittest.TestSuite()
        suite1.addTest(sampleTestCase('testsample'))
    
    
        return suite1
    
    if __name__ == '__main__':
    ##    unittest.main(defaultTest='suite')
    ##    runner = unittest.TextTestRunner()
    ##    runner.run(default='suite')
        pass
    

    module_shuffle.py


    #coding:utf-8
    
    import unittest
    import random
    
    class shuffleTestCase(unittest.TestCase):
        def setUp(self):
            self.seq= range(10)
        def testshuffle(self):
            self.assertNotEqual(random.shuffle(self.seq) ,self.seq,'shuffle failure')
    
    
    
    def suite():
        shuffletestcase = shuffleTestCase('testshuffle')
        suite2 = unittest.TestSuite()
        suite2.addTest(shuffletestcase)
    
    
        #suite.addTest
        return suite2
    
    if __name__ == '__main__':
    ##    unittest.main(defaultTest='suite')
    ##    runner = unittest.TextTestRunner()
    ##    runner.run(default='suite')
        pass

    testRandom.py

    #coding:utf-8
    
    import unittest
    import random
    
    #导入其他suite所在的模块
    import module_sample
    import module_shuffle
    
    class choiceTestCase(unittest.TestCase):
        def setUp(self):
            self.seq= range(10)
        def testchoice(self):
            self.failUnless(random.choice(self.seq) in self.seq,'choice failure')
    
    def suite():
    
        #调用module_sample模块中的suite套件
        suiteSample = module_sample.suite()
    
        #调用module_shuffle模块中的suite套件
        suiteShuffle = module_shuffle.suite()
    
        #创建choiceTestCase测试用例类的实例
        choicecase = choiceTestCase('testchoice')
    
        #将测试实例choicecase、其他模块中的suite套件添加至该模块的suite中,形成更庞大的测试用例集
        suite=unittest.TestSuite((suiteSample,suiteShuffle,choicecase))
    
        #suite.addTest
        return suite
    
    if __name__ == '__main__':
    ##    unittest.main(defaultTest='suite')
        runner = unittest.TextTestRunner()
        runner.run(suite())
    


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    C#Redis集合set
    C#Redis列表List
    C#Redis字符串
    C#Redis初识
    2016-2017年终总结及新年计划
    Eclipse调试cas server 3.5.2.1
    CAS连接微软活动目录的配置方法
    SSO之安装CAS Server
    Tomcat之配置HTTPS
    Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决
  • 原文地址:https://www.cnblogs.com/think1988/p/4627995.html
Copyright © 2020-2023  润新知