Django 芹菜任务测试用例拒绝完成
我有一个芹菜任务,它遍历django查询集。对于每次迭代,我的代码都与外部api交互。当我运行测试用例来测试任务时,由于一些未知的原因,测试没有完成Django 芹菜任务测试用例拒绝完成,django,unit-testing,rabbitmq,celery,Django,Unit Testing,Rabbitmq,Celery,我有一个芹菜任务,它遍历django查询集。对于每次迭代,我的代码都与外部api交互。当我运行测试用例来测试任务时,由于一些未知的原因,测试没有完成 #芹菜任务 @共享任务 定义迭代和计算() qs=Product.objects.all() 对于qs中的项目: 使用外部api()提取 #我的测试用例 从django.test导入TestCase 从myapp.models导入产品 从myapp.tasks导入迭代和计算 类TaskTestCase(测试用例): def设置(自): #做一些设
#芹菜任务
@共享任务
定义迭代和计算()
qs=Product.objects.all()
对于qs中的项目:
使用外部api()提取
#我的测试用例
从django.test导入TestCase
从myapp.models导入产品
从myapp.tasks导入迭代和计算
类TaskTestCase(测试用例):
def设置(自):
#做一些设置,比如创建一些产品
def test_INTERATE_和_compute_成功()
任务=迭代和计算延迟()
res=task.get()
self.assertEqual(task.status,“SUCCESS”)
芹菜工人是这样开始的:
芹菜-我的项目工人-l信息-p独奏
我的测试是这样运行的:
python manage.py test myapp.tests.test\u tasks.TaskTestCase.test\u iterate\u和\u compute\u成功
从芹菜工人那里我得到了这样的回答,那项任务成功了
Task myapp.tasks.iterate_and_compute[71ab0ede-3a58-476b-a5cd-27e56552e9f1] succeeded in 0.07800000000861473s: None
这是我从测试控制台得到的响应
python manage.py test myapp.tests.test_tasks.TaskTestCase.test_iterate_and_compute_is_successful
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
这种反应持续了几分钟
做与不做
- 我没有链接/分组任务,也没有在
task中调用其他任务iterate\u和\u compute
- 在我的迭代和计算任务中,我使用
,它应该只持续25秒time.sleep(25)
- 我尝试用不同的队列启动芹菜工人,用apply\u async调用我的任务并将其分配给队列
- 我尝试忽略任务结果
@shared\u task(ignore\u result=True)
- 最初,no
在我的iterate\u and\u compute任务中迭代之后,我添加了return
,只是为了看看它是否会产生任何影响return
- 我已尝试对我的任务设置软时间限制,但由于我在windows操作系统上运行,因此不支持软时间限制
- 我已经搜索了堆栈溢出,以查看是否有任何相关的问题(可能我错过了一个解决方案),但我没有找到任何相关的问题
- 芹菜==4.4.7
- Django==3.1.1
- django芹菜结果==1.2.1
- rabbitmq_服务器-3.8.5
- ErlangOTP-23.1.1
如何使我的testcase完全运行并显示测试结果?为什么不为iterate_and_compute()编写一个测试呢?运行单元测试不需要芹菜、队列、工人等。我明白你的意思,但根据我的研究,调用
iterate\u and\u compute()
实际上并不模拟芹菜任务在生产环境中的运行方式,因为它不会作为后台服务运行。这样做只会检验逻辑。