Django 芹菜任务测试用例拒绝完成

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设置(自): #做一些设

我有一个芹菜任务,它遍历django查询集。对于每次迭代,我的代码都与外部api交互。当我运行测试用例来测试任务时,由于一些未知的原因,测试没有完成

#芹菜任务
@共享任务
定义迭代和计算()
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).
这种反应持续了几分钟

做与不做
  • 我没有链接/分组任务,也没有在
    iterate\u和\u compute
    task中调用其他任务

  • 在我的迭代和计算任务中,我使用
    time.sleep(25)
    ,它应该只持续25秒

我试过的
  • 我尝试用不同的队列启动芹菜工人,用apply\u async调用我的任务并将其分配给队列

  • 我尝试忽略任务结果
    @shared\u task(ignore\u result=True)

  • 最初,no
    return
    在我的iterate\u and\u compute任务中迭代之后,我添加了
    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()
实际上并不模拟芹菜任务在生产环境中的运行方式,因为它不会作为后台服务运行。这样做只会检验逻辑。