Unittest-framework-nose-testing-framework

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

鼻のテスト-フレームワーク

noseプロジェクトは、 py.test が最新の装いを受け取った翌年の2005年にリリースされました。 Jason Pellerinによって書かれたもので、py.testによって開拓されたのと同じテストイディオムをサポートしますが、インストールと保守が簡単なパッケージです。

*nose* モジュールは、pipユーティリティを使用してインストールできます。
pip install nose

これにより、noseモジュールが現在のPythonディストリビューションとnosetest.exeにインストールされます。つまり、このユーティリティと–mスイッチを使用してテストを実行できます。

C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py
*nose* は、もちろん *unittest.TestCase* サブクラスからテストを収集します。 unittest.TestCaseのサブクラスではないテストクラスだけでなく、単純なテスト関数も作成できます。 また、noseは、時限テストの作成、例外のテスト、およびその他の一般的なユースケースに役立つ多くの機能を提供します。
*nose* はテストを自動的に収集します。 テストケースをテストスイートに手動で収集する必要はありません。 *nose* は、最初のテストモジュールがロードされるとすぐにテストの実行を開始するため、テストの実行は応答します。

unittestモジュールと同様に、 nose はパッケージ、モジュール、クラス、およびテストケースレベルでフィクスチャをサポートしているため、高価な初期化を可能な限り頻繁に行うことはできません。

基本的な使い方

前に使用したスクリプトに似たnosetest.pyを考えてみましょう-

# content of nosetest.py
def func(x):
   return x + 1

def test_answer():
   assert func(3) == 5

上記のテストを実行するには、次のコマンドライン構文を使用します-

C:\python>nosetests –v nosetest.py

コンソールに表示される出力は次のようになります-

nosetest.test_answer ... FAIL
================================================================
FAIL: nosetest.test_answer
----------------------------------------------------------------------
Traceback (most recent call last):
   File "C:\Python34\lib\site-packages\nose\case.py", line 198, in runTest
      self.test(*self.arg)
   File "C:\Python34\nosetest.py", line 6, in test_answer
      assert func(3) == 5
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures = 1)
*nose* は、上記のコマンドラインで *with-doctest* オプションを使用してDocTestと統合できます。
\nosetests --with-doctest -v nosetest.py

テストスクリプトで nose を使用できます-

import nose
nose.main()

あなたが(unittest.mainのように)成功時に0で、終了時に1でテストスクリプトを終了したくない場合は、代わりにnose.run()を使用してください-

import nose
result = nose.run()

テストの実行が成功した場合、結果はtrueになり、失敗するか、キャッチされない例外が発生した場合、falseになります。

*nose* は、パッケージ、モジュール、クラス、およびテストレベルでフィクスチャ(セットアップおよびティアダウンメソッド)をサポートします。 py.testまたはunittestフィクスチャと同様に、セットアップは常にテスト(またはテストパッケージとモジュールのテストのコレクション)の前に実行されます。テスト実行のステータスに関係なく、セットアップが正常に完了した場合、ティアダウンが実行されます。