Почему Джанго не видит моих тестов?



Я создал 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 с"

1081   6  

6 ответов:

Есть что-то не совсем правильное, если вы получаете тот же результат после переименования файла в tests.py. Как вы проводите тесты? Вы делаете это из командной строки или настроили пользовательскую цель запуска с помощью Eclipse? Пожалуйста, попробуйте сделать это из командной строки, Если вы еще не сделали.

Также запустите оболочку Django (python manage.py shell) и импортируйте модуль тестов.

from MyProj.forum.tests import SimpleTest

Правильно ли работает импорт?

Вам нужно будет использовать префикс test_ для каждого метода тестирования.

Резюме:

0) попробуйте выполнить только для вашего приложения:

python manage.py test YOUR_APP

1) Проверить в 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, поэтому должны применяться те же правила.

Вы должны назвать его tests.py.

Я пробовал все эти вещи, но забыл добавить __init__.py файл в каталоге тестов, который я создал, чтобы хранить все мои тесты, и Джанго не смог его найти.

Comments

    Ничего не найдено.