Вам нужно использовать TransactionTestCase вместо обычного TestCase, чтобы сделать это.Если вы этого не сделаете, изменения, которые вы вносите в модель в своем тестовом примере (например, в вашей настройке), фактически не будут зафиксированы в БД, следовательно, не будут видны вашему потоку.См. Документ Django о TransactionTestCase для получения более подробной информации.
Кроме того, я обнаружил, что соединение в потоке необходимо воссоздать.Следующий код добился цели:
from django.db import connection
connection.close()
cursor = connection.cursor()
Это не ваш случай, но если вы используете SQLite, вам также нужно указать TEST_NAME в ваших настройках.Если нет, Django SQLite DB полностью находится в памяти и не может быть разделен между потоками.
Используя этот подход, я мог бы создать живой тестовый сервер в потоке, одновременно управляя селеном и DB из порождающего теста Django.Я взял код потока сервера с здесь