unittestがテスト例を実行するいくつかの方法

2399 ワード

1、unittestを通る.main()でテスト例を実行する方法:
import unittest 

class UCTestCase(unittest.TestCase):
    def setUp(self):
        # 
        .....
    def tearDown(self):
        # 
        .....
    #  1
    def test1(self):
        # 
        .....
    #  2
    def test2(self):
        # 
        .....
if __name__ == "__main__":
    unittest.main()

2、testsuitによってテスト用例を実行する方法:
import unittest 
#  
class UCTestCase(unittest.TestCase):
    def setUp(self):
        # 
        .....
    def tearDown(self):
        # 
        .....
            
    #  1
    def test1(self):
        # 
        ......
    #  2
    def test2(self):
        # 
        ......
if __name__ == "__main__":
    #  
    suite = unittest.TestSuite()
    suite.addTest(UCTestCase("test1"))
    suite.addTest(UCTestCase("test2"))
    #  
    runner = unittest.TextTestRunner()
    runner.run(suite)

3、testLoader方式で:
import unittest
class TestCase1(unittest.TestCase):
    def testCase1(self):
    print("a")
    def testCase2(self):
    print("b")


class TestCase2(unittest.TestCase):
    def testCase1(self):
        print("a1")
    def testCase2(self):
        print("b1")

if __name__ == "__main__":
    # 
    suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
    suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
    suite = unittest.TestSuite([suite1, suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)

4.あるパスの下にあるすべてのテスト用例をdiscover方式でロードする
import unittest

# discover 
# test_dir  
# pattern  
test_dir = "./test_case"
discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")
#  test_case test py , py 


if __name__ == "__main__":
    runner=unittest.TextTestRunner()
    runner.run(discover)

次に、上記のスクリプトに適用されるunittestモジュールの下のいくつかのメンバーについて簡単に紹介し、上記のコードを理解するために使用します:TestCase:すべてのテスト例の基本クラス、1つのテスト方法の名前を与えると、1つのテスト例の例が返されます.TestSuit:テストケースのインスタンスを組織し、テストケースの追加と削除をサポートし、最終的にtestRunnerに渡されてテスト実行を行う.TextTestRunner:テスト結果をテキスト形式で表示することを意味するテスト例の実行例.テストの結果はTextTestResultインスタンスに保存されます.テストの使用例、成功したか、失敗したかなどの情報が含まれます.TestLoader:TestCaseをTestSuiteにロードするために使用されるloadTestsFrom_がいくつかあります.()メソッドは、それぞれの場所からTestCaseを探してインスタンスを作成し、addをTestSuiteに追加し、TestSuiteインスタンスを返します.