ネストされたテストキット、複数のsuiteの組合せの例
3128 ワード
ネストされたテストキットは、システム全体を一度にテストするために、いくつかのテストキットを組み合わせることを常に望んでいます.これは簡単です.複数のTestSuiteが別のTestSuiteに追加できるからです.複数のTestCaseが1つのTestSuiteに追加されるように、suite 1=module 1です.TheTestSuite() suite2 = module2.TheTestSuite() alltests = unittest.TestSuite((suite 1,suite 2))は、リリースされたパッケージの「examples」ディレクトリに、「alltests.py」は、ネストされたテストキットを使用する例を提供しています.実際には、TestSuiteにはTestCaseのほかにTestSuiteも含まれています.これにより、suite 1=mysuite 1.TheTestSuite()suite 2=mysuite 2.TheTestSuite()alltests=unittest.TestSuite((suite 1,suite 2)#unittest.TestSuite()は、他のTestSuiteクラスのインスタンスも受信できます.
なお、makeSuiteメソッドを使用する場合、テストキットが実行する各テスト例の順序は、Python組み込み関数cmpに従ってテストメソッド名がソートされる順序によって決定される.
次の例は、module_の3つのモジュールファイルです.sample.py module_shuffle.py testRandom.pyそれぞれmodule_sample、module_shuffleモジュールのsuiteはtestRandomモジュールのsuiteに加入し、より膨大なテスト用例セットを形成する.
module_sample.py:
module_shuffle.py
testRandom.py
なお、makeSuiteメソッドを使用する場合、テストキットが実行する各テスト例の順序は、Python組み込み関数cmpに従ってテストメソッド名がソートされる順序によって決定される.
次の例は、module_の3つのモジュールファイルです.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())