我想在Django中使用pytest测试celery任务。
如果我在测试函数中使用celery_worker
参数,则会收到错误消息:
{OperationalError}数据库表已锁定(sqllite)。
如果我在测试之前运行worker,并且不使用celery_worker
参数,则任务会成功运行,但是由于所有更新都链接到原始数据库,因此我无法在测试数据库(pytestmark = pytest.mark.django_db
)中找到更改。
我尝试在Docker(postgresql
数据库)中运行测试,但是使用参数celery_worker
时出现错误:
psycopg2.InterfaceError:连接已关闭
答案 0 :(得分:0)
需要与pytest标记celery_worker
结合使用@pytest.mark.django_db(transaction=True)
参数。