2016-04-06 13 views
2

私はDjango 1.8.12でプロジェクトを実行しています。実行の間にテストデータベースを保存する場合は、described in the documentationとしてください。 testコマンド自体は使用して、ヘルプテキストで-k/--keepdbオプションの一覧を示していても、それは失敗します。Djangoのテストコマンドでいくつかのオプションが認識されないのはなぜですか?

[email protected] /vagrant/project (master) $ python manage.py test -k myapp.tests.testcase 
nosetests myapp.tests.testcase -k --verbosity=1 
Usage: manage.py [options] 

manage.py: error: no such option: -k 

[email protected] /vagrant/project (master) $ python manage.py test --keepdb myapp.tests.testcase 
nosetests myapp.tests.testcase --keepdb --verbosity=1 
Usage: manage.py [options] 

manage.py: error: no such option: --keepdb 

例えば、いくつかの他のオプションと同じコマンドを呼び出します-qまたは--failfastが問題なく動作します。一方、--no-colorのような他のリストされたオプションも同様の方法で失敗します。

ここに何か不足していますか?これらのオプションをコマンドにどのように渡すことができますか?

+0

あなたはテストで 'django.test.TestCase'を使っていますか、あるいは' unittest.TestCase'ですか? – C14L

+0

私は 'django.test.TestCase'を使用していますが、呼び出されることはほとんどないので大したことではないと思いますが、その前に実行を終了します。 'unittest.TestCase'に切り替えるか' class TestCase(object):pass'を定義すると、 '-k'オプションが使われているときと同じエラーメッセージが表示されます。 –

+0

他のアプリでテストを実行できますか、失敗しますか? [Django 1.8 source](https://github.com/django/django/blob/1.8.12/django/test/runner.py#L55)はそれを知っています。 – C14L

答えて

3

私は同様の問題があり、プロジェクト設定でTEST_RUNNERをdjango_noseに設定していた問題がありました。だから、../settings/local.pyで、コメントアウトまたはこれを取り除く:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

は--keepdbスイッチを使用することができます。

+0

実際、--keepdbはDjangoのデフォルトテストランナーのオプションと思われます。しかし、私はNoseTestsを使いたいので、 'REUSE_DB = 1 python manage.py test'でテストを実行すると、私のトリックができます。 私に合った解決策を見つけるのに役立ちましたので、正しい答えとしてマークしてください。 –

+0

'django_nose'の最近のバージョンは' --keepdb'オプションを通るので、別の解決策は、Pythonパッケージをアップグレードすることです(例えば、私のために 'django-nose'を1.4.1から1.4.4にアップグレードすることは許されます) keepdb'を動作させる) –

関連する問題