如果我在 django 测试用例中启动一个新进程,它会使用普通数据库而不是测试数据库。
class ClientManagerTest(TestCase):
def setUp(self):
self.clientprocess = Process(target=run).start()
现在如果我这样做,例如
def run():
User.objects.all()
它查询标准数据库而不是测试数据库。如何解决这个问题?
如果这是你看到的行为,你需要在堆栈中使用一个可调用的,它将适当地初始化 Django 的测试基础设施。
但是,这不是处理 Django 中跨进程共享工作的推荐方法。您应该考虑使用celery
库;他们为此用例提供单元测试文档。