在测试期间启动新的 django 进程时,它使用了错误的数据库



如果我在 django 测试用例中启动一个新进程,它会使用普通数据库而不是测试数据库。

class ClientManagerTest(TestCase):
    def setUp(self):
        self.clientprocess = Process(target=run).start()

现在如果我这样做,例如

def run():
   User.objects.all()

它查询标准数据库而不是测试数据库。如何解决这个问题?

如果这是你看到的行为,你需要在堆栈中使用一个可调用的,它将适当地初始化 Django 的测试基础设施。

但是,这不是处理 Django 中跨进程共享工作的推荐方法。您应该考虑使用celery库;他们为此用例提供单元测试文档。

最新更新