私が作成した カスタムDjango-adminコマンド
しかし、私はそれをテストする方法がわかりません 標準Djangoテスト
カバレッジツールを使用している場合は、次のコードから呼び出すとよいでしょう。
from Django.core.management import call_command
from Django.test import TestCase
class CommandsTestCase(TestCase):
def test_mycommand(self):
" Test my custom command."
args = []
opts = {}
call_command('mycommand', *args, **opts)
# Some Asserts.
実際のコマンドスクリプトを可能な限り最小限に抑えて、他の場所で関数を呼び出すだけにする必要があります。その後、関数は通常どおり単体テストまたはdoctestを介してテストできます。
github.comの例で見ることができます ここを参照
def test_command_style(self):
out = StringIO()
management.call_command('dance', style='Jive', stdout=out)
self.assertEquals(out.getvalue(),
"I don't feel like dancing Jive.")
stdoutの解析 の簡単な代替方法は、たとえばsys.exit(1)を使用して、正常に実行されない場合にエラーコードで管理コマンドを終了させることです。
これは、次のテストで確認できます。
with self.assertRaises(SystemExit):
call_command('mycommand')