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 テスト実行中の標準出力と標準エラーのバッファ |