私たちはあなたには、いくつかのユースケースは、中央に戻らない発生する可能性があり、自動化されたテストを行っている、あなたはスキップすることにしたいです。直接のコメントは、コードの量が多すぎる、変更、このアプローチは明らかに間違っているので、この方法は何ですか?この自動化フレームワークは、この操作を完了するために私たちを助けることができるユニットテスト
例には、自動的にスキップ
unittestのは、いくつかのデコレータスキップのユースケースを提供します。我々は、これらのデコレータでこれらのアクションを完了するために、私たちを助けることができます
@ unittest.skip()
彼は表し:ユースケースは、無条件にスキップ
DEF :(理由)スキップ "" " 无条件地跳过用例 """ defのデコレータ(test_item): もし ないでisinstance(test_item、タイプ): @ functools.wraps(test_item) デフ skip_wrapper(* argsを、** kwargsから): 昇給SkipTest(理由) test_item = skip_wrapper test_item。__unittest_skip__ = 真 test_item。__unittest_skip_why__ = 理由 リターンtest_itemの リターンデコレータ
unittest.skipIf @()
彼は言った:条件が真である場合には、テストをスキップします。
DEF SKIPIF(条件条件のため、理由): 「」「 条件がtrueの場合、テストはスキップされます。」 「」 IF 条件条件について: リターンスキップ(理由は) 返し _idを
Unittest.skipUnless @()
彼は言った:条件が真でない限り、それ以外のテストをスキップします。
DEF (条件条件、理由のために)skipUnless: 「」「 条件が真でない限り、そうでない場合は、テストをスキップ」 「」 IF ない条件条件について: リターンスキップ(理由) リターン _id
小規模チョッパー
さらに騒ぎがなければ、直接私達は私達のテストを完了するために、同じインターフェイスを使用して戦闘、もちろん、インターフェイスのドキュメント、または当社のお問い合わせの曲インターフェイス(シンプル、自由、より良い使用を)始めます
#のコード:UTF-8 インポートunittestの インポート要求の クラス 音楽(たunittest.TestCase): デフ(自己、名前を)選択: URL = ' https://api.apiopen.top/searchMusic ' データ = { " 名前" :名前を } R = requests.post(URL、データ= データ) B = r.json()' 結果' ] [0] [ ' 表題' ] 戻りB unittest.skip @("必須スキップ" ) DEF TEST01(セルフ): B = ' 断橋' A = self.select(B) self.assertEqual(B、A) を印刷(" 1スキップ例で使用される" ) unittest.skipIf @(トゥルー、' 条件が真のスキップである' ) DEF :TEST02(自己) A = ' それは良い叫び' B = self.select(A) self.assertEqual(A、B) を印刷(" 例2のスキップを使用します" ) unittest.skipUnless @(Falseのは、' スキップするときの条件が偽である' ) DEF TEST03(セルフ): A = ' 芒種' C = ' ビブラート' B = self.select(A) の試行: self.assertIn(C、 B、MSG = 「\ n型ビブラート楽曲情報が耳には存在しない」) を除いて例外としてMSG: 印刷(「エラーメッセージS%」%MSG) プリント(「実施例3スキップ付き」) DEFtest04(自己): A = ' 魚のような' B = self.select(A) self.assertEqual(A、B) を印刷(" 実施例4で使用されていないスキップ" ) IF __name__ == ' __main__ ' : unittest.main(冗長 = 2)
私たちは、スキップされた実施例123でコードによって参照が、もちろん、我々は、スキップせずに、実施例4で使用するための唯一のコードです、ノースキップでのみ実施例4で見つかった実行した後にスキップする、条件ごとに異なっていることができます。
また、結果から見ることができ、我々は3つのユースケースの合計をスキップして、それぞれがスキップする方法です。
聞いて少しの友人がありますが、ちょうどこのシングルユースケースをスキップし、その後、私はそれのクラスのすべてのユースケースをスキップしたいですか?これは単純ではないのですか?直接クラスのデコレータに上記のことではありません。
#のコード:UTF-8 インポートunittestの インポート要求 @ unittest.skip(' 强制性跳过' ) クラスの 音楽(たunittest.TestCase): DEF :(自己、名前)を選択し 、URLを = " https://api.apiopen.top / searchMusic ' データ = { " 名前" :名 } R = requests.post(URL、データ= データ) B = r.json()' 結果' ] [0] [ ' タイトル' ] リターンB DEF TEST01(セルフ): B = ' 断橋' A = self.select(B) self.assertEqual(B、A) を印刷(" 例1つのスキップで使用される" ) DEF TEST02(セルフ): A = 「言いました良い叫び' B = self.select(A) self.assertEqual(A、B) を印刷(" 実施例を用いて、2スキップ" ) DEF TEST03(自己): A = ' 芒種' C =' ビブラート' B = self.select(A) の試行: self.assertIn(C、B、MSG = ' \ n型ビブラート曲情報は、耳内に存在しない' ) を除いて例外としてMSG: プリント(' エラーメッセージS%'%のMSG) 印刷(" 実施例3とスキップ" ) DEF test04(自己): A = ' 魚のような' B = self.select(A) self.assertEqual(A、B)は、 プリント(「使用例をスキップしていない4" ) の場合 __name__ == ' __main__ ' : unittest.main(冗長 = 2)
実行することにより、4つのすべてを有する実施形態のクラスはスキップされていることが判明しています。
静かな書き込み記事それはあなたを助けている場合、あなたはそこに間違いがあるか、返信を見た後に初めて、以下のメッセージを残すことができる場所がわからない場合のポイント、に焦点を当てることができます!