Unittest-framework

提供:Dev Guides
移動先:案内検索

UnitTest Framework-フレームワーク

'unittest’は、テストの自動化、テストのセットアップおよびシャットダウンコードの共有、コレクションへのテストの集約、レポートフレームワークからのテストの独立性をサポートします。

unittestモジュールは、一連のテストでこれらの品質を簡単にサポートできるクラスを提供します。

これを達成するために、unittestは次の重要な概念をサポートしています-

  • テストフィクスチャー-これは、1つ以上のテストを実行するために必要な準備、および関連するクリーンアップアクションを表します。 これには、たとえば、一時データベースまたはプロキシデータベース、ディレクトリの作成、サーバープロセスの開始などが含まれます。
  • テストケース-これはテストの最小単位です。 これにより、特定の入力セットに対する特定の応答がチェックされます。 unittestは、新しいテストケースを作成するために使用できる基本クラス TestCase を提供します。
  • テストスイート-これは、テストケース、テストスイート、またはその両方のコレクションです。 これは、一緒に実行する必要があるテストを集約するために使用されます。 テストスイートはTestSuiteクラスによって実装されます。
  • テストランナー-これは、テストの実行を調整し、ユーザーに結果を提供するコンポーネントです。 ランナーは、グラフィカルインターフェイス、テキストインターフェイスを使用するか、テストの実行結果を示す特別な値を返す場合があります。

単体テストの作成

次の手順は、単純な単体テストの作成に関係しています-

  • ステップ1 *-プログラムにunittestモジュールをインポートします。
  • ステップ2 *-テストする関数を定義します。 次の例では、add()関数がテストの対象となります。
  • ステップ3 *-unittest.TestCaseをサブクラス化してテストケースを作成します。
  • ステップ4 *-クラス内のメソッドとしてテストを定義します。 メソッドの名前は「test」で始まる必要があります。
  • ステップ5 *-各テストはTestCaseクラスのassert関数を呼び出します。 アサートには多くの種類があります。 次の例では、assertEquals()関数を呼び出します。
  • ステップ6 *-assertEquals()関数は、add()関数の結果をarg2引数と比較し、比較が失敗した場合にassertionErrorをスローします。
  • ステップ7 *-最後に、unittestモジュールからmain()メソッドを呼び出します。
import unittest
def add(x,y):
   return x + y

class SimpleTest(unittest.TestCase):
   def testadd1(self):
      self.assertEquals(add(4,5),9)

if __name__ == '__main__':
   unittest.main()
  • ステップ8 *-コマンドラインから上記のスクリプトを実行します。
C:\Python27>python SimpleTest.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
  • ステップ9 *-次の3つは、テストの結果の可能性があります-
Sr.No Message & Description
1

OK

テストは成功しました。 コンソールに「A」が表示されます。

2

FAIL

テストはパスせず、AssertionError例外を発生させます。 コンソールに「F」が表示されます。

3

ERROR

このテストでは、AssertionError以外の例外が発生します。 コンソールに「E」が表示されます。

これらの結果は、それぞれ「。」、「F」、「E」でコンソールに表示されます。

コマンドラインインターフェース

unittestモジュールをコマンドラインから使用して、単一または複数のテストを実行できます。

python -m unittest test1
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

unittestは、次のコマンドラインオプションをサポートしています。 すべてのコマンドラインオプションのリストについては、次のコマンドを使用します-

Python –m unittest -h
Sr.No Option & Description
1

-h, --help

このメッセージを表示

2

v, --verbose

詳細な出力

3

-q, --quiet

最小限の出力

4

-f, --failfast

最初の失敗で停​​止

5

-c, --catch

control-Cをキャッチして結果を表示する

6

-b, --buffer

テスト実行中の標準出力と標準エラーのバッファ