在测试过程中启动新的Django进程时,使用了错误的数据库

时间:2019-06-23 14:54:24

标签: django database multiprocessing

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

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

现在,如果我这样做

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

它查询标准数据库而不是测试数据库。该如何解决?

1 个答案:

答案 0 :(得分:1)

如果这是您所看到的行为,则需要在堆栈中进一步使用可调用对象,以适当地初始化Django的测试基础结构。

但是,这不是在Django中处理跨进程共享工作的推荐方法。您应该考虑使用the celery library;他们为此用例提供了unit testing documentation