Я наконец решил создать модульный тест для всего моего кода. То есть я пытаюсь создать фикстуры на основе моих моделей, чтобы проверить свою функцию на них.
Я создал фикстуру json с помощью команды dumpdata и поместил ее в директорию фикстур в моем приложении. Ниже приведен код моего теста:
import unittest
from mysite.myapp.models import Post
class RatingTestCase(unittest.TestCase):
fixtures = [
'posts.json',
]
def test_me(self):
p = Post.objects.all()
self.assertTrue(p)
Я запускаю свой тест, используя следующую команду на моем компьютере Arch Linux:
python2.7 manage.py test myapp
Он создает базу данных sqlite и устанавливает все таблицы и индексы, однако в конце он говорит, что никаких приспособлений найдено, и в нем говорится, что мой тест не прошел, так как он не нашел никаких данных.
Я использую последнюю версию разрабатываемой версии Django и заметил, что на основе документации я должен импортировать unittest, используя:
из django.utils import unittest
Однако, когда я это делаю, он жалуется, что unittest не может быть импортирован. Вот почему я импортирую unittest прямо из моего пути к python, который работал.
Раньше я пытался имитировать объекты модели django, но я думаю, что лучше тестировать приложения Django с использованием фикстур, чем с использованием фиктивных библиотек. Есть идеи, как загрузить фикстуры?
Заранее спасибо.
РЕДАКТИРОВАТЬ: Если я изменю имя фикстуры на initial_data.json, он будет загружать его каждый раз, когда я запускаю свой тест. Однако мне все еще нужно иметь несколько имен устройств для запуска разных тестов.
РЕДАКТИРОВАТЬ: Я получил его, импортировав TestCase из следующего:
from django.test import TestCase