我有一个Flask应用程序,它使用Nose在特定目录中发现并运行一系列测试。测试需要很长时间才能运行,所以我想在事情发生时向用户报告进度。
我使用Celery创建一个运行测试的任务,这样我就可以立即返回并开始显示结果页面。现在我需要开始报告结果。我正在考试我可以在队列上写一条消息,说'我已经完成了步骤N'。
我知道Celery有可用于确定要写入哪个队列的任务上下文,但测试不是任务的一部分,它是从任务调用的函数。我也不能使用烧瓶会话,因为当测试运行移动到任务时,上下文就消失了。
我已经看到了几种方法来进行数据驱动的鼻子测试,例如测试生成器或者nose-testconfig,但这不符合消息队列名称是动态的要求,并且可能有多个线程运行相同的测试
所以,我的问题是:我如何告诉测试它对应于特定的芹菜任务,即:开始测试的那个,所以我可以在正确的消息上报告它的状态队列?