gpt4 book ai didi

python - Django Celery 测试运行程序做了非常奇怪的事情

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:04 25 4
gpt4 key购买 nike

我正在尝试在 Django 应用程序中测试一些 celery 功能,但我什至无法启动基本的测试系统。

当我按照所有内容进行操作并将 TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner' 添加到设置文件的底部时,当我尝试使用 进行测试时,会发生一些异常情况管理.py测试:

1)似乎运行了一堆我从未编写过的测试。此前,我有18项测试全部通过。现在,我运行测试并得到以下结果:

................................................................................
.....................x..........................................................
...................................................................
----------------------------------------------------------------------
Ran 227 tests in 0.802s

OK (expected failures=1)
Destroying test database for alias 'default'...

2) 我的测试当前位于应用文件夹内名为 tests 的文件夹中,每个文件的名称为,例如 test_models.py。但是,在添加 CelerySuiteTestRunner 后,这些测试根本不会运行 - 我可以添加失败的测试,它们也不会失败。

3) 但是,如果我删除该文件夹并在应用程序文件夹中添加一个 tests.py 文件,则该文件中的任何内容都将运行。 (如果我将 tests 文件夹保留在原处,它将不会运行 tests.py 文件中的测试。)

我只是想将与 celery 相关的任务的测试添加到我的应用程序中。谁能解释一下这是怎么回事?

谢谢!

最佳答案

我假设您使用的是 Django 1.6,即 changed the default test runnerCeleryTestSuiteRunner继承自 Django 的旧 DjangoTestSuiteRunner ,它从所有已安装的应用程序运行测试,包括随 Django 提供的应用程序,但不会发现 tests 之外的测试。模块。

您可以重新实现 CeleryTestSuiteRunner在您自己的测试运行器中使用新的 DiscoverRunner它将按预期发现您的测试,例如:

from django.test.runner import DiscoverRunner
from djcelery.contrib.test_runner import _set_eager

class CeleryDiscoverRunner(DiscoverRunner):
def setup_test_environment(self, **kwargs):
_set_eager()
super(CeleryDiscoverRunner, self).setup_test_environment(**kwargs)

关于python - Django Celery 测试运行程序做了非常奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com