django-noseを使ったユニットテスト

※使い方の部分にミスがあったので、修正しました。

先日「テスト用モジュールを分割する方法」というメモを書きましたが、より良さそうなやり方があるのを知りました。django-noseというパッケージを使うやり方です。

このdjango-noseというモジュールを使うと、init.pyにインポート文を書かなくてよかったり、クラス単位やメソッド単位でのテストも可能です。まだ導入したばかりですが、以下に手順のメモを残しておきます。

django-noseの導入方法

django-noseの導入は簡単です。pipを使ってインストールし、settings.pyを少し修正するだけでできます。

django-noseのインストール

pip install nose
pip install django-nose

settings.pyに以下を追加

--- ファイル: settings.py ---
INSTALLED_APPS = (
    ...,
    ...,
    'django_nose',
}

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
    '--with-coverage',
}

以上でdjango-noseを導入することができます。

django-noseを使ったユニットテスト

django-noseを使うと、テストディレクトリ以下全部テストしたり、特定のモジュールだけをテストしたりできます。

hoge(アプリ名).tests以下全部テスト

python manage.py test hoge

tests直下のtest_fugaモジュールを全部テスト

python manage.py test hoge.tests.test_fuga

test_fugaモジュールのTestFugaクラスのテストメソッドを全部テスト

python manage.py test hoge.tests.test_fuga:TestFuga

TestFugaクラスのtest_fuga01メソッドをテスト

python manage.py test hoge.tests.test_fuga:TestFuga.test_fuga01

なお、参考にしたのは、以下のサイトです。

この記事が役に立った場合、シェアしていただけると励みになります!!