Python 如何查看在Django';s manage.py测试命令

Python 如何查看在Django';s manage.py测试命令,python,django,unit-testing,django-unittest,Python,Django,Unit Testing,Django Unittest,在使用Django的manage.py test命令完成测试执行后,仅向控制台打印通过测试的数量 (virtualenv)G:\Project\>python manage.py测试 正在为别名“default”创建测试数据库。。。 真的 .. ---------------------------------------------------------------------- 在0.017秒内运行了2次测试 好啊 正在销毁别名“default”的测试数据库。。。 有没有办法看到: 实际

在使用Django的
manage.py test
命令完成测试执行后,仅向控制台打印通过测试的数量

(virtualenv)G:\Project\>python manage.py测试
正在为别名“default”创建测试数据库。。。
真的
..
----------------------------------------------------------------------
在0.017秒内运行了2次测试
好啊
正在销毁别名“default”的测试数据库。。。
有没有办法看到:

  • 实际执行了哪些测试
  • 来自哪个模块
  • 按什么顺序

  • 我在文件里找不到任何解决办法

    您可以将
    -v2
    传递给
    测试
    命令:

    python manage.py test -v 2
    
    运行此命令后,您将得到如下结果(我使用的是django 2,可以忽略迁移/数据库内容):

    为别名'default'('file:memorydb_default?mode=memory&cache=shared')创建测试数据库。。。
    要执行的操作:
    同步未迁移的应用程序:消息、静态文件
    应用所有迁移:管理、身份验证、内容类型、会话
    在不迁移的情况下同步应用程序:
    正在创建表。。。
    正在运行延迟SQL。。。
    运行迁移:
    正在应用contenttypes.0001\u首字母。。。好啊
    ...
    正在应用会话。0001_首字母。。。好啊
    系统检查未发现任何问题(0静音)。
    
    test_equal_hard(polls.tests.TestHard)。。。好的奈杰尔的答案很好,肯定是最低的进入门槛。但是,使用
    django_nose
    (设置起来并不难;)可以获得更好的反馈

    以下资料来自:

    首先:安装一些要求:

    pip install nose pinocchio django_nose
    
    python manage.py test
    
    pip install coverage
    
    然后将以下内容添加到
    settings.py

    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
    NOSE_ARGS = ['--with-spec', '--spec-color']
    
    然后按照正常方式运行测试:

    pip install nose pinocchio django_nose
    
    python manage.py test
    
    pip install coverage
    
    输出应如下所示:

    注意:测试下的注释可以用来提供比名称更好的输出

    e、 g:

    def test_something(self):
        """Something should happen"""
        ...
    
    NOSE_ARGS = ['--with-spec', '--spec-color', 
             '--with-coverage', '--cover-html', 
             '--cover-package=.', '--cover-html-dir=reports/cover']
    
    将在运行测试时输出“应该发生的事情”

    额外要点:您还可以生成/输出代码覆盖率:

    pip install nose pinocchio django_nose
    
    python manage.py test
    
    pip install coverage
    
    将以下内容添加到settings.py中的NOSE_参数中:
    '--with coverage','--cover html','--cover package=.','--cover html dir=reports/cover'

    e、 g:

    def test_something(self):
        """Something should happen"""
        ...
    
    NOSE_ARGS = ['--with-spec', '--spec-color', 
             '--with-coverage', '--cover-html', 
             '--cover-package=.', '--cover-html-dir=reports/cover']
    

    然后,当您运行
    python manage.py测试时,您将得到一个很好的代码覆盖率摘要,并且在
    reports/cover

    Hi@toast38coza中会得到一个整洁的html报告。那太好了。我是Python新手,很高兴看到格式良好的测试输出。我正在寻找NOSE_ARGS的文档,但我发现的没有一个文档显示了规范和类似的内容。你能给我指一下那个吗?我基本上是在试图防止nose重复“类似于TransactionTestCase,但使用
    transaction.atomic()
    来实现测试隔离………nTestCase可能是必要的(例如,测试一些事务行为)。”@MacarioTala--with spec参数来自
    pinocchio
    插件(您可以pip安装该插件)。参见上面的“首先安装一些要求”。是的。我已经安装好了。让我试着找到关于皮诺奇的文件。谢谢为了共享,我替换掉了pinocchio,因为它有点太冗长了,我发现它没有分叉,而是:,你可能也喜欢它。我尝试了所有详细级别,但找不到一个显示没有迁移/数据库输出的单元测试的级别。如果没有第三方库,这真的不可能吗?