在 celery 任务中使用 Django ORM 使用单元测试数据库

问题描述 投票:0回答:1

在 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 unit-testing celery
1个回答
0
投票

默认情况下,Django 使用内存测试数据库,外部进程无法访问该数据库,例如从命令行或守护进程启动的 Celery。但是,可以使用 celery.contrib.testing.worker.start_worker

 在 Django 测试进程中将工作线程作为线程启动
,这将根据需要使用测试数据库。

© www.soinside.com 2019 - 2024. All rights reserved.