簡単な紹介
DDT(データ駆動型テスト)データ駆動型テスト:テストケース、それをテストするための方法を駆動し、外部データによってセットが、状況は、テストデータ、試験データの変化を大量に必要と目的は、以下の工程を分離することです
インストール後はデータドリブン単体テストモジュール、このライブラリDDTの主な用途、ありませんので、
ピップDDTインストール
DDT DDT該デコレータの一般的な方法とデコレータデータ(直接入力テストデータ)、file_data(テストデータはJSONやYAMLから得ることができる)、アンパック(分解データ)の三つのクラス
使用
1.いくつかの個々の時間データ
インポートunittestの インポートDDT @ ddt.ddt #クラス定義の使用をテストする前に:@ ddt.ddt クラスMYTEST(たunittest.TestCase): @ ddt.data( 1,2,3,4) #を使用したテストケースの定義の前に:@ ddt.data(テストデータ)カンマテストデータにより分離 DEF :TEST_1(セルフ、A) プリント(A) IF __name__ == " __main__ " : unittest.main()
結果
1 。2 。3 。4 。 -------------------------------------------------- -------------------- らん 4回のテストで0.013s OK
データセットが個々の要素にリスト、分割され2
インポートunittestの インポートDDTの 値 = [(1,2)、(3,4)、(5,6 )] @ ddt.ddt #クラス定義の前に試験に使用した:ddt.ddt @ クラスMYTEST(たunittest.TestCaseの): @ ddt.data( *値) #テストケースの定義を使用する前に:@ ddt.data(テストデータ)、*パイソンが順番にリスト要素に分解されるパラメータが渡さ DEF TEST_1(セルフ): 印刷(A) IF __name__ == " __main__ " : unittest.main()
結果
(1,2 ) ( 3,4 ) ( 5,6 ) 。 -------------------------------------------------- -------------------- 蘭 3回のテストで0.004s OK
あなたはタプルが個々の要素に分解した上でリストが必要な場合は、使用済みのアンパック
インポートunittestの インポートDDTの 値 = [(1,2)、(3,4)、(5,6 )] @ ddt.ddt #クラス定義の前に試験に使用した:ddt.ddt @ クラスMYTEST(たunittest.TestCaseの): @ ddt.data( *値) #テストケースの定義を使用する前に:@ ddt.data(テストデータ)、パラメータ*パイソンが要素のリストに分解され、順次通過 @ ddt.unpack #個別の値をとります[1]、1,2-着信に分解される DEF TEST_1(セルフ、A、B): 印刷(A、B) IF __name__ == " __main__ " : unittest.main()
結果
1 2 。3 4 。5 6 。 -------------------------------------------------- -------------------- 蘭 3回のテストで0.010s OK
3.データ・ディクショナリは、設定した時間であります
インポートunittestの インポートDDTの 値 = { " ":1、" B ":2 } @ ddt.ddt クラスMYTEST(たunittest.TestCase): @ ddt.data(値) @ ddt.unpack DEF TEST_1(自己、B ): プリント(a、b)はなら__name__ == " __main__ " : unittest.main()
結果
1 2 。 -------------------------------------------------- -------------------- 蘭 1回のテストで0.004s OK
4.使用JSONファイルやYAML
JSONファイル
{ " TEST1 ":1 、 " TEST2 ":" ABC " 、 " TEST3 ":[1,2,3 ] }
コード
輸入unittestの 輸入DDT @ ddt.ddt クラスMYTEST(たunittest.TestCase): @ ddt.file_data(" tmp.json " ) デフTEST_1(自己): プリント() の場合 __name__ == " __main__ " : unittest.main ()
結果
1 .abc 。[ 1、2、3 ] 。 -------------------------------------------------- -------------------- 蘭 3回のテストで0.014s OK