事务管理错误:这是当运行单元测试用例时“原子”块处于活动状态时禁止

2024-09-28 22:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试使用pytest运行单元测试用例时遇到这个错误。 它在我的项目中工作得很好,但在运行测试用例时引发了一个错误。在

我的代码如下:

def saveEvents(request, request_data):
    transaction.set_autocommit(autocommit=False)
    try:
        # here is my code
    except Exception as inst:
        transaction.rollback()
        # code
    transaction.commit()
    return something

我阅读了这类问题的所有解决方案,但我很困惑为什么它不能与pytest一起工作。请帮忙。在


Tags: 项目代码falsedatapytestrequestdef错误
1条回答
网友
1楼 · 发布于 2024-09-28 22:20:16

如果要测试手动管理事务的代码,则应按如下方式标记测试:

@pytest.mark.django_db(transaction=True)
def my_test():
   ... 

有关详细信息,请参见the pytest-django docs。在

请注意,您可以重新构造代码并在try中使用with transaction.atomic():。。除了块,而不是执行手动事务管理。有关示例,请参见Django docs。在

相关问题 更多 >