在 Django 应用程序中,我有一个运行 Celery 任务的视图。 在 celery 任务中,我使用 Django ORM 对数据库执行一些操作。
我这样称呼我的测试用例:
class MyViewTestCase(APITestCase):
def test_my_view(self):
self.client.post('url',data)
我的测试用例在测试数据库中执行所有 ORM 操作。 但在 celery 任务内部,所有 ORM 操作都发生在产品数据库上。
我用的是芹菜4。
是否有选项可以让 celery 与测试 Django 数据库一起使用?
默认情况下,Django 使用内存测试数据库,外部进程无法访问该数据库,例如从命令行或守护进程启动的 Celery。但是,可以使用 celery.contrib.testing.worker.start_worker
在 Django 测试进程中将工作线程作为线程启动,这将根据需要使用测试数据库。