我在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