Почему Джанго-Нос дважды проводит тесты?
У меня есть следующие модели:
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'...
Пожалуйста, скажите мне, что не так? Почему Джанго-Нос дважды проводит тесты?
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
1 ответ
Решение
Возможно, Ваши тесты импортированы дважды. Вы не показали свою файловую структуру, но, возможно, у вас есть этот тест в отдельном файле, чем вы делаете import
в tests.py или что-то в этом роде.