※使い方の部分にミスがあったので、修正しました。
先日「テスト用モジュールを分割する方法」というメモを書きましたが、より良さそうなやり方があるのを知りました。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
なお、参考にしたのは、以下のサイトです。