Как обновить юнит-тесты при переходе с sqlite на postgres (django) - PullRequest
0 голосов
/ 09 октября 2018

У меня есть несколько большой проект Django со многими видами / моделями.Я недавно перенес свой проект из sqlite3 на локальный postgres и планирую еще больше его масштабировать (поместить postgres на отдельную машину и т. Д.).

Я следовал этим инструкциям при переносе сsqlite to postgres, и, похоже, он работал отлично.(т. е. мое работающее приложение выглядит идентично тому, когда база данных была sqlite)

Моя проблема заключается в следующем: Когда я запускаю свои ранее написанные юнит-тесты, первый юнит-тест работает и все последующие юнит-тесты терпят неудачу,Индивидуально юниттесты работают нормально.Я видел других сообщений в stackoverflow, посвященных этой проблеме, но решения были настолько неясны.Как я могу переделать мои setUp() / teardown() методы для моих юнит-тестов, чтобы они проходили с моей недавно перенесенной базой данных postgres?Нужно ли полностью переписывать все юнит-тесты?

Я видел библиотеку pytest-postgresql , хотя я не совсем уверен, как изменить мои юнит-тесты, основываясь на этом.

Мой набор тестов настроен на разные классы, которые тестируют представления.Например,

class View1Tests(TestCase):
    def setUp(self):
        c1 = Category.objects.create(id=55555, leaf_node_name="Test Category 1")
        c2 = Category.objects.create(id=12345, leaf_node_name="Test Category 2")

        s1 = Search.objects.create(category=c1, username="testuser")
        s2 = Search.objects.create(category=c2, username="testuser2")


    def test_view1_success(self):
         #blablabla

    def test_view1_fail(self):
         #blablabla

    def test_view1_something(self):
         #blablabla

Я получаю такие ошибки:

appname.models.DoesNotExist: поискового совпадения не существует.

Опять же, все эти юнит-тесты работают отлично, когда sqlite3 был БД.Я думаю, что это проблема с настройками тестирования postgres?Но я в растерянности относительно того, с чего начать.Любая помощь будет оценена !!

...