Почему Джанго не видит моих тестов?
Я создал test.py модуль, заполненный
from django.test import TestCase
from django.test.client import Client
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from forum.models import *
class SimpleTest(TestCase):
def setUp(self):
u = User.objects.create_user("ak", "[email protected]", "pwd")
Forum.objects.create(title="forum")
Site.objects.create(domain="test.org", name="test.org")
def content_test(self, url, values):
"""Get content of url and test that each of items in `values` list is present."""
r = self.c.get(url)
self.assertEquals(r.status_code, 200)
for v in values:
self.assertTrue(v in r.content)
def test(self):
self.c = Client()
self.c.login(username="ak", password="pwd")
self.content_test("/forum/", ['<a href="/forum/forum/1/">forum</a>'])
....
И поместил его в папку с моим заявлением.
Когда я выполняю тесты по
python manage.py test forum
После создания тестовой базы данных я получаю ответ "пробежал 0 тестов за 0.000 с"
Что я делаю не так ?
С. П.
Вот моя иерархия проектов:
MyProj:
forum (it's my app):
manage.py
models.py
views.py
tests.py
...
Я переименовал test.py чтобы tests.py. Eclipse получил, что этот модуль с тестами, но ответ все равно "пробежал 0 тестов за 0.000 с"
6 ответов:
Есть что-то не совсем правильное, если вы получаете тот же результат после переименования файла в
tests.py. Как вы проводите тесты? Вы делаете это из командной строки или настроили пользовательскую цель запуска с помощью Eclipse? Пожалуйста, попробуйте сделать это из командной строки, Если вы еще не сделали.Также запустите оболочку Django (
python manage.py shell) и импортируйте модуль тестов.from MyProj.forum.tests import SimpleTestПравильно ли работает импорт?
Резюме:
0) попробуйте выполнить только для вашего приложения:
python manage.py test YOUR_APP1) Проверить в settings.py файл, если YOUR_APP в INSTALLED_APP конфиг
2) метод испытания должен начинаться со слова "испытание", например:def test_something(self): self.assertEquals(1, 2)3) Если вы используете каталог под названием Тесты вместо tests.py файл, проверьте, есть ли в нем файлinit .py.
4) Если вы используете каталог tests, удалите tests.pyc и Тесты.pyo файлы. (pycache dir для Python3)
Попробуйте переименовать свой метод
testв нечто вродеtest_content.Я полагаю, что тестовый раннер будет запускать все методы с именем
test_*(смотрите документы python для организации тестового кода. ДжангоTestCaseявляется подклассомunittest.TestCase, поэтому должны применяться те же правила.
Я пробовал все эти вещи, но забыл добавить __init__.py файл в каталоге тестов, который я создал, чтобы хранить все мои тесты, и Джанго не смог его найти.
Comments