gpt4 book ai didi

python - 为什么 django-nose 运行测试两次?

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:52 25 4
gpt4 key购买 nike

我有以下模型:

class Poll(models.Model):

question = models.CharField(max_length=200)
pub_date = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
return self.question

和以下测试

from polls.models import Poll
from django.test import TestCase
from django.utils import timezone

class PollModelTest(TestCase):

def test_poll_save(self):
q = "What is the best OS?"
pd = timezone.now()
p = Poll(question=q,
pub_date=pd)
p.save()
polls = Poll.objects.all()
self.assertEquals(polls.count(), 1)
self.assertEquals(polls[0].question, q)

以及以下设置:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
'django_nose',

)

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
'--with-coverage',
'--cover-package=polls',
'--with-progressive',
'--verbosity=0',
'--with-fixture-bundling',
]

当我尝试 python manage.py test polls 时,测试运行了两次。以下是输出:

Creating test database for alias 'default'...
Name Stmts Miss Cover Missing
--------------------------------------------
polls 0 0 100%
polls.models 6 0 100%
--------------------------------------------
TOTAL 6 0 100%

OK! 2 tests, 0 failures, 0 errors in 0.0s
Destroying test database for alias 'default'...

但是,当我尝试不使用 TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' 时,测试仅运行一次。以下是输出:

Creating test database for alias 'default'...
.
----------------------------------------------------------------------
Ran 1 test in 0.002s

OK
Destroying test database for alias 'default'...

请告诉我哪里出了问题? 为什么 django-nose 会运行两次测试?

OT:对于相同的模型,django_nose 比 unittest 花费更多的时间。

编辑:

文件夹结构如下:

├── database.sqlite
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── templates
│   │   ├── 404.html
│   │   ├── 500.html
│   │   └── base.html
│   ├── urls.py
│   └── wsgi.py
└── polls
├── __init__.py
├── models.py
├── tests
│   ├── __init__.py
│   └── test_models.py
├── urls.py
└── views.py

最佳答案

可能您将测试导入了两次。您没有显示您的文件结构,但也许您在单独的文件中进行了此测试,而不是在 tests.py 或类似文件中执行 import

关于python - 为什么 django-nose 运行测试两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com