nose tutorial documentation

nose の基本的な使い方

«  nose のインストール   ::   Contents   ::   nose のsetup/teardown  »

nose の基本的な使い方

はじめに

nose の基本的な使い方です。

条件式がTrueかどうか、2値が等しいかどうかをチェックする方法です。

テストの作成

まずテスト用モジュールを作成します。

モジュール名には、 “test” を含んでいる必要があります。 そのためテストしたいモジュール名+”_test”などとするとわかりやすくなると思います。

つぎに、同じルールでテスト用関数を作成します。

関数名にも、 “test” を含んでいる必要があります。 1つの機能ごとに名前を付けていくと良いです。

ソースコード

テスト対象のモジュール

例題1

ex1.add(x, y)[source]
ex1.sub(x, y)[source]

テスト用のモジュール

例題1 テストケースを記述してあります。

ex1_test.add_test()[source]

ex1.add test

ex1_test.fail_test()[source]

test fail

ex1_test.if_test()[source]

if test

ex1_test.sub_test()[source]

ex1.sub test

テストの補足

nose では、 assert 文がそのまま使えますが、 nose.tools の ok_ , eq_ を利用するほうがコードは読みやすくなります。

ok_ , eq_ は、 assert のラッパーです。

nose.tools.ok_

ok_(expr, msg=None)

expr が True かどうかを評価します。 msg がある場合は、テスト結果に出力します。

nose.tools.eq_

ok_(a, b, msg=None)

a と b が等しいかどうかを評価します。 msg がある場合は、テスト結果に出力します。

テストの実行

テストの実行は、 nosetests を実行するだけです。 テスト用モジュールのテストがすべて実行されます。

$ nosetests ex1_test.py
...F
======================================================================
FAIL: test fail
----------------------------------------------------------------------
Traceback (most recent call last):
...
    assert(1 == '1')
AssertionError

----------------------------------------------------------------------
Ran 4 tests in 0.026s

FAILED (failures=1)

実行時に “-v” を付与することで、テスト関数の docstring を出力できます。

1 行説明を追加すると結果が見やすくなるので、 docstring の記述と “-v” オプションはおすすめです。

-v あり

$ nosetests -v ex1_test.py
ex1.add test ... ok
ex1.sub test ... ok
if test ... ok
test fail ... FAIL

======================================================================
FAIL: test fail
----------------------------------------------------------------------
...
    assert(1 == '1')
AssertionError

----------------------------------------------------------------------
Ran 4 tests in 0.003s

FAILED (failures=1)

«  nose のインストール   ::   Contents   ::   nose のsetup/teardown  »