A、ユニットテスト主な用途
4つのコアコンセプトでユニットテスト:テストケース(テストケース)、テストスイート(テストスイート)、テストランナー(テストランナー)、テストフィクスチャ(テスト環境データ作成とクリーンアップまたはテストデータ足場)
※テストケース:テストケースのインスタンスは、テストケースです。テストは、(セットアップ)準備環境、テストコードの実行(実行)、およびテスト(ティアダウン)の還元環境を設定する前に
※テストスイート:一緒に多くのテストケース。
※TestLoader:テストケースをテストスイートにロードするために使用されます。
テストケースを実行するために使用される、請求ラン(テスト)を行うテストスイート/テストケースを実行し(結果)方法:※TextTestRunner。
※テストフィクスチャ:構築と破壊するテスト環境
1.たunittest.TestCaseを継承する新しいクラスを作成します。()の実行例をunittest.main呼び出して、セットアップとティアダウンメソッドをオーバーライドすると、セットアップとティアダウンは、各ユースケースの前と後に実行します。
インポートunittestの クラスTestBaidu(たunittest.TestCase): #各ユースケースは、()とティアダウン()メソッドのセットアップを実行します実行する #あなたはすべてのユースケースを実行する場合、そして唯一の前提条件一回の条件を終了するために実行します。setUpClass()とteardownclass()と DEF :セットアップ(自己) プリント(「試験前の初期化が行われる======== 」) DEF ティアダウン(自己): プリント(「テストケースの実行が完了した後操作================仕上げ」) DEF :test_add(自己) を印刷。(+ 5. 7 ) DEFのtest_sub(セルフ): 印刷(3-2 ) IF __name__ == " __main__' : Unittest.main() 結果: >> 結果: テストケースの実行に先立って初期化動作 ======== 12 の実行終了後にテスト動作 ===== 初期化動作は、テストの前に実行しました ======== テストを実行した後の仕上げ操作 ===== <<
2. setupClassとteardownClass:(2つのテストは一度だけ行わ、次のコードを参照)のみ初期化条件及び終了条件と、すべてのテストケースを実行します。
インポートunittestの クラスTestBaidu(たunittest.TestCase): #あなたはすべてのユースケースを実行し、条件を終了するための前提条件で一度のみ実行する場合。使用setupclass()とteardownclass() @classmethod DEF setUpClass(CLS): 印刷(" ============一度だけ実行されたすべてのテストケースの前には" ) @classmethod DEF tearDownClassを( CLS): 印刷(" 一度だけ============すべてのテストケースを実行した後の" ) DEF test_add(セルフ): 印刷。(+ 5. 7 ) DEFのtest_sub(セルフ): 印刷(3-2 ) #1 のpython3の書き込みは、書き込みが実行されますしていない 場合 __name__ == 「__main__ 」: unittest.main() 操作の結果: >> テストで開始午後10時19 ... すべてのテストケースは一度だけ実行される前に ============ 12 1 、すべてのテストケースは一度だけ実行された後 ============ <<
二、testsuitの使用
インポートunittestモジュール (たunittest.TestCaseの)クラスTestBaidu: DEF TEST01(セルフ): 印刷( 'TEST01テスト...') DEF TEST02(セルフ): 印刷( 'TEST02テスト...') DEF TEST03(セルフ): 印刷( 'TEST03テスト...') __name__ == '__main__' IF: SUIT = unittest.TestSuiteインスタンスは、()#テストセット作成 suit.addTest(TestBaidu( 'TEST01') )#の実行されるようにテストケースを追加するには、テスト・セットを suit.addTestを(TestBaidu( 'TEST02')) #suit.addTest([TestBaidu( 'TEST01')、TestBaidu( 'TEST02')]) ランナー= unittest.TextTestRunner()は、試験#を実行するために使用される runner.run(スーツ)
第三に、unittest.TestLoader.discoverマッチングディレクトリ内のすべてのユースケース、ディレクトリ内のユースケース名はtestで始まる必要があります
インポートunittestの インポートOS #はオブジェクトテストスイートのインスタンス化 SUIT = unittest.TestSuiteインスタンス() #インスタンス化オブジェクトTestLoader ローダー= unittest.TestLoader() #すべてのテストを見つけるために発見を()を使用して、ディレクトリ内のファイルとリターンをテストスイートにデータを追加します。 s.addTests(loader.discover(os.getcwd())) RUN = unittest.TextTestRunner() run.run(S)
PS:ああ、多くの報酬ポイントのようなこの記事便利な友人を見つけます!