DTESTは、Pythonが提供する標準unittestのパッケージに似たテストフレームワーク、です。 DTESTための加算値が、しかしながら、eventletパッケージの使用を介して、テストの実行がねじ切りされていることです。 「DTEST」でこのように "D" - - DTESTパッケージには、テストとテストフィクスチャ間の「依存関係」の概念提供するテスト·フィクスチャをセットアップマッチングが完了するまで、テストが実行されないことを確認して、その関連するすべてのテストが完了するまで、テスト·フィクスチャが実行されません取り壊します。依存関係は、その特定の機能のテストが失敗した場合に特定の機能の可用性を必要とするテストが実行されないことを確実にするために使用することができます。
テストを書きます
最も簡単なテストプログラムは、名前もで始まるPythonのソースファイルにある「テスト」で始まる名前を持つ単純な機能である「テスト」。それはDTESTフレームワークの任意の部分をインポートする必要もありません。テストはクラスで収集される場合DTESTのより高度な機能の使用が望まれる場合には、しかし、または、DTESTインポート*からの単純なことが必要です。テストを含むすべてのクラスによって拡張される必要があります - - だけでなく、@skipと@nottestなどのデコレータこれは、利用可能なDTestCaseクラスになります。
試験は、標準のPython assert文を使用して行うことができます。ただし、ユーティリティ·ルーチンの数がdtest.utilモジュール(輸入*にも安全な)でご利用いただけます。これらのユーティリティ·ルーチンの多くは、からunittest.TestCaseの方法のような名前を持っている - 例えば、)(dtest.util.assert_dict_equalは()unittest.TestCase.assertDictEqualに類似しています。
テスト·フィクスチャ
DTESTフレームワークは、テスト·フィクスチャをサポートしています - セットアップと機能を取り壊す - クラス、モジュール、およびパッケージレベルで。パッケージレベルの備品は「__init__.py」ファイルに含まれるのsetUpという名前の関数()およびtearDown()で構成され、同様に、モジュールレベルの備品は、機能のテスト機能と試験方法のクラスを含むモジュール内のサメットにsetUp()およびtearDown()が構成されています。クラスレベルで、クラスはsetUpClass()と設定し、各クラスの破棄実行することができるtearDownClass()クラスメソッド(または静的メソッド)を含むことができます。すべての場合において、設定()関数とsetUpClass()メソッドは、同じスコープ内のいずれかのテストの前に実行されます。同様に、指定されたスコープですべてのテストが実行された後に、対応するtearDownClass()メソッドおよびtearDown()関数が実行されます。
DTESTフレームワークはまた、関連する各試験の前と後に実行されるごとに、テストsetUp()およびtearDown()関数またはメソッドをサポートしています。テストを含むクラスでは、それぞれのテストが自動的にセットアップ()およびtearDown()がそれに関連付けられたクラスのメソッドがあり、しかし、すべてのテストのために、これらの器具は、明示的に設定することができます(またはクラスデフォルトからオーバーライド)。次の例を考えてみます。
@isTest
デフ)(test_something:
 ここで#テストの何か
 パス
@ test_something.setUp
デフsomething_setup():
 #すべては行く準備ができて設定しましょう...
 パス
@ test_something.tearDown
デフsomething_teardown():
 #自分の後にクリーンアップ
 パス
この例では、(@nottest以外)DTESTデコレータはtest_somethingの前が必要です();ここでは@isTestを使用するが、他の利用可能なDTESTデコレータは、ここで使用することができます。これは、@ test_something.setUpと@ test_something.tearDownのデコレータが利用できるようになります。 (標準のPythonにおける類似のものについては、組み込みの@propertyデコレータをチェックしてください。)
テストの実行
DTESTフレームワークを使用してテストを実行すると、かなりストレートフォワードです。ランdtestsと呼ばれるスクリプトが提供されています。デフォルトでは、現在のディレクトリは、名前が「テスト」で始まるすべてのモジュールまたはパッケージのためにスキャンされます。検索は、すべてのパッケージを下に再帰的な処理をします。 (A "パッケージ"は "__init__.py"を含むディレクトリとして定義されます。)一度すべてのテストが発見され、それらは次に実行され、標準出力に放出されたテストの結果。
いくつかのコマンドラインオプションは、実行dtestsの挙動を制御するために利用可能です。例えば、「--no-スキップ」オプションがあっても@skipデコレータで飾られたもの、すべてのテストを実行するには、dtestsを実行する原因になりますし、 "-d"オプションの原因は特定のディレクトリを検索し、dtestsを実行するのではなく、現在のディレクトリ。オプションの完全なリストについては、「-h」または「--help」オプションを使用します。
コマンドラインから実行-dtestsを実行すると、しかし、テストを実行するための唯一の方法ではありません。ランdtestsスクリプトが(dtest.optparser()関数によって構築はOptionParserを使用して)コマンドラインオプションを解析する非常に簡単なスクリプトは、()(dtest.opts_to_argsを使用)キーワード引数のセットにこれらのオプションを変換され、その後、 dtest.main()関数にこれらのキーワード引数を渡します。ユーザーは、テスト結果の表示方法を制御するための代替DTestOutputインスタンスを提供する、またはテストがスキップされている制御するための代替方法を提供するなど、ユーザー固有の拡張機能と同じ機能を構築するために、これらの関数を使用することができます。詳細については、これらの関数やクラスのドキュメントの文字列を参照してください。
この要件:ます。
Pythonの
コメントが見つかりません