2

我有一个 Flask 应用程序,它使用 Nose 在特定目录中发现和运行一系列测试。测试需要很长时间才能运行,所以我想在事情发生时向用户报告进度。

我使用 Celery 创建了一个运行测试的任务,这样我就可以立即返回并开始显示结果页面。现在我需要开始报告结果。我想在测试中我可以在队列上放一条消息,上面写着“我已经完成了第 N 步”。

我知道 Celery 有任务上下文,我可以用它来确定要写入哪个队列,但测试不是任务的一部分,它是从任务调用的函数。我也不能使用烧瓶会话,因为当测试运行移动到任务时,上下文就消失了。

我见过几种进行数据驱动鼻子测试的方法,例如测试生成器或nose-testconfig,但这不符合消息队列名称是动态的并且可能有多个线程运行相同测试的要求。

所以,我的问题是: 我如何告诉测试它对应于特定的芹菜任务,即:开始测试的那个,所以我可以在正确的消息队列上报告它的状态?

4

0 回答 0