5
我有以下设置:运行芹菜工作人员在单元测试
- Django的芹菜项目中的寄存器任务
foo
- 项目B:使用芹菜的send_task调用
foo
- 项目A和项目B具有相同的配置:SQS,msgpack 用于序列化,gzip等
- 每个项目都存在于不同的github版本库中
我在单元测试的项目A中的“foo”调用,根本不使用Celery,只是foo(1,2,3)
并声明结果。我知道它的工作原理。
我有单元测试,在B工程send_task发送正确的参数。
什么我没有测试,需要在你的建议是这两个项目之间的整合。我想有一个单元测试,将:
- 项目一
- 的情况下启动工作发送使用B项目
- 断言的代码,工人开始在第一步中获得一个任务该任务使用我在第二步中发送的参数,并且
foo
函数返回了预期结果。
似乎有可能通过使用python的子进程和解析worker的输出来破解这个,但这很丑。在这种情况下单元测试的建议方法是什么?任何代码片段,你可以分享?谢谢!
帮助我们了解,为什么要测试工人方面会发生什么?从呼叫方进行测试还不够,并且如果正确的答案结果宣告测试成功了吗? –