我在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
)也以類似方式失敗。
我在這裏錯過了什麼嗎?我如何將這些選項傳遞給命令?
你在測試中使用'django.test.TestCase'還是'unittest.TestCase'? – C14L
我正在使用'django.test.TestCase',但我不認爲它很重要,因爲它們很可能永遠不會被調用,錯誤會在此之前終止執行。當使用'-k'選項時,切換到'unittest.TestCase'或者定義'class TestCase(object):pass'會導致相同的錯誤信息。 –
你可以在其他應用程序中運行測試,還是他們也失敗? [Django 1.8源代碼](https://github.com/django/django/blob/1.8.12/django/test/runner.py#L55)確實知道它。 – C14L