Luk*_*uke 9 testing django django-testing django-1.6
在django 1.5及更早版本中,python manage.py test默认情况下,运行将运行项目中的所有测试(包括django.contrib中的所有测试).版本1.6之后,默认行为是运行当前目录中的所有测试.
无论是否使用django.contrib测试,运行所有测试的最佳方法(v 1.6)是什么?
Nic*_*tot 15
Django 1.6 将默认测试运行器更改为:
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
Run Code Online (Sandbox Code Playgroud)
您可以通过添加到settings.py来恢复旧行为:
TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'
Run Code Online (Sandbox Code Playgroud)
正如发行说明中所解释的那样:
前一个运行器(django.test.simple.DjangoTestSuiteRunner)仅在INSTALLED_APPS中的Python包的models.py和tests.py模块中找到了测试.
新的运行器(django.test.runner.DiscoverRunner)使用unittest2内置的测试发现功能(Python 2.7+标准库中的unittest版本,与Django捆绑在一起).通过测试发现,测试可以位于名称与模式测试*.py匹配的任何模块中.
新的运行器需要一个模块的虚线路径列表,其中应该发现测试,因此您也可以通过django contrib这种方式运行测试:
python manage.py test myproject django.contrib path.to.someotherapp
Run Code Online (Sandbox Code Playgroud)
这不会INSTALLED_APPS自动运行应用程序中的所有测试.对于更复杂的解决方案,您可以编写自己的跑步者,从新老跑步者那里获取.
另请注意,通常不需要运行测试django.contrib,因为这些测试不是测试您的应用程序,而是测试Django发行版.Django提供了更多的测试,这些测试都不是由跑步者运行的.
| 归档时间: |
|
| 查看次数: |
2798 次 |
| 最近记录: |