1

我正在编写一个使用 Huey 任务队列的 Django 应用程序,按照相关 Huey 文档中的描述进行配置。运行一些基本测试,我禁用了immediate设置以尝试manage.py run_huey在其自己的进程中运行任务使用者的命令。

然后我运行了一个 Django ,该 DjangoTestCase调用了一个写入数据库的 Huey 任务(在 aTestCase中,它应该是一个临时数据库,在测试后创建并销毁。)该任务在 Huey 进程中被消耗并按预期运行;但是,在测试运行的任务中创建的对象已写入我的实际(开发)数据库。

我理解为什么——无论 Django 在运行测试时如何启动一个假数据库,都无法触及 Huey 消费者进程;我知道,根据 Huey 文档,它的默认行为是在启用 Django 的设置时以立即模式运行(一旦任务入队就执行任务,而不运行调度数据库或单独的消费者进程)DEBUG,所以我正在退出肢体。

但是,我觉得我的一些标准 Huey 功能在即时模式下不可用——安排将来发生的任务,在单独的线程或进程中运行更重的计算——是我想要测试或试验的东西开发中。因此,我的问题是:有没有一种好方法可以用 Django 配置 Huey 来实现这一点——当 Huey 任务在单独的进程中使用时,TestCase 的数据库模拟可以按预期工作?

(我对 Django 很陌生,测试,几乎所有这些,所以我很高兴听到这样的论点,即这超出了我应该关注的测试行为范围。)

4

0 回答 0