如何查看在Django的manage.pytesting命令中运行的testing

在使用Django的manage.py test命令完成manage.py test只有通过testing的数量被打印到控制台。

 (virtualenv) G:\Project\>python manage.py test Creating test database for alias 'default'... True .. ---------------------------------------------------------------------- Ran 2 tests in 0.017s OK Destroying test database for alias 'default'... 

有没有办法看到:

  1. 哪些testing实际执行
  2. 从什么模块
  3. 以什么顺序

我还没有在文档中find任何解决scheme。

您可以将-v 2传递给test命令:

 python manage.py test -v 2 

运行这个命令后,你会得到这样的东西(我使用django 1.9,可以忽略迁移/数据库的东西):

 Creating test database for alias 'default' (':memory:')... Operations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: admin, contenttypes, auth, sessions Synchronizing apps without migrations: Creating tables... Running deferred SQL... Running migrations: Rendering model states... DONE Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying sessions.0001_initial... OK test_equal_hard (polls.tests.TestHard) ... ok <--------+ test_equal_simple (polls.tests.TestSimple) ... ok <--------+ | | That's your tests! >----------------------------+ 

顺便说一句, v代表冗长(你也可以使用--verbosity=2 ):

 python manage.py test --verbosity=2 

以下是python manage.py --help的摘录python manage.py --help

选项:-v VERBOSITY,–verbosity = VERBOSITY

详细程度; 0 =最小输出,1 =正常输出,2 =详细输出,3 =非常详细的输出

奈杰尔的回答非常好,绝对是最低门槛的select。 不过,你可以django_nose得到更好的反馈(而且设置起来并不困难)。

以下是来自: 与Python的BDD

首先:安装一些要求:

 pip install nose pinocchio django_nose 

然后将以下内容添加到settings.py

 TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' NOSE_ARGS = ['--with-spec', '--spec-color'] 

然后像平常一样运行你的testing:

 python manage.py test 

输出应该是这样的:

在这里输入图像说明

注意:您的testing下的注释可以用来提供比名字更好的输出。

例如:

 def test_something(self): """Something should happen""" ... 

运行testing时会输出“应该发生的事情”。

加分:你也可以生成/输出你的代码覆盖率:

 pip install coverage 

在settings.py中添加以下内容到你的NOSE_ARGS: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'

例如:

 NOSE_ARGS = ['--with-spec', '--spec-color', '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'] 

那么当你运行python manage.py test时,你会得到一个很好的代码覆盖总结,以及reports/cover一个整洁的html报告