unittestのデータ駆動型DDT

 

簡単な紹介

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

 

おすすめ

転載: www.cnblogs.com/fengf233/p/11810725.html