unittestユニットテストフレームワークの簡単な使用


一、ユニットテストフレームワークが提供する機能:
1、用例の作成規範と実行;
2、専門的な比較方法(断言)を提供する.
3、豊富なテストログを提供する:失敗ログ、成功用例数、失敗用例数、実行時間などを提供する.
ユニットテストが提供する機能を見ると、異なるレベルのテストを提供するのに役立ちます.
  • ユニットテスト:unittest
  • HTTPインタフェース自動化テスト:unittest+Requests
  • Web UI自動化テスト:unittest+selenium
  • モバイルオートメーションテスト:unittest+appium
  • 二、試験用例の作成
    1、被験関数:
    class Calculator():
        def __init__(self,a,b):
            ' 、 、 、 '
            self.a = int(a)
            self.b = int(b)
    
        # 
        def add(self):
            return self.a+self.b
    
        def sub(self):
            return self.a-self.b
    
        def mul(self):
            return self.a * self.b
    
        def div(self):
            return self.a / self.b

    2、テスト関数の作成:
    import unittest
    from module import Calculator
    
    class ModuleTest(unittest.TestCase):
        def setUp(self):
            self.cal = Calculator(8,4)
    
        def tearDown(self):
            pass
    
        def test_add(self):
             result = self.cal.add()
             self.assertEqual(result,12)
    
        def test_sub(self):
            result = self.cal.sub()
            self.assertEqual(result,4)
    
        def test_mul(self):
            result = self.cal.mul()
            self.assertEqual(result,32)
    
        def test_div(self):
            result = self.cal.div()
            self.assertEqual(result,2)
    
    if __name__ == "__main__":
        # 
        #unittest.main()
        suite = unittest.TestSuite()
        suite.addTest(ModuleTest("test_add"))
        suite.addTest(ModuleTest("test_sub"))
        suite.addTest(ModuleTest("test_mul"))
        suite.addTest(ModuleTest("test_div"))
    
        runner = unittest.TextTestRunner()
        runner.run(suite)

    解析:
    まず、
    ユニットテストフレームワークをimportでunittest導入します.
    ModuleTestクラス継承unittestを作成します.TestCaseクラス.
    setUp()およびtearDown()は、各テスト・インスタンスの開始および終了であり、setUp()メソッドは、変数の初期化、データベース・テスト・データの生成、ブラウザのオープンなど、テスト・インスタンスの実行前の初期化作業に使用されます.teardownは逆です.
    unittestでは、テスト例を「test」で始まるように要求します.例:test_add;
    次に、
    unittestを呼び出す.TestSuite類のaddTest()メソッドはテストキットにテスト用例を追加する.
    最後にunittest.TextTestRunner()クラスのrun()メソッドは、テストキットのテスト例を実行します.
    すべてのテストケースを実行するにはif__を使用します.name__ == "__main__":下のunittest.main()関数.mainメソッドは、現在のファイル継承unittestを自動的に検索します.TestSuiteクラスのテストクラスは、テストクラスの下で「test」で始まる方法と一致して実行される.
    実行結果:
    Testing started at 12:33 ... C:\Users\46297\PycharmProjects\unittestTest\venv\Scripts\python.exe "E:\softwareInstall\PyCharm Community Edition 2018.1\helpers\pycharm\_jb_unittest_runner.py"--path C:/Users/46297/PycharmProjects/unittestTest/test.py Launching unittests with arguments python -m unittest C:/Users/46297/PycharmProjects/unittestTest/test.py in C:\Users\46297\PycharmProjects\unittestTest
    Ran 4 tests in 0.005s
    OK
    Process finished with exit code 0