django-test-utils 全局名称 'setup_test_environment' 未定义

0 投票
1 回答
1098 浏览
提问于 2025-04-17 14:28

我正在尝试使用django-test-utils来在测试运行后保留我的数据库。

但是当我执行quicktest命令时:

python manage.py quicktest

我遇到了这个错误:

re/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/apps/desarrollo/workspace/3sure-server/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/apps/desarrollo/workspace/3sure-server/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/apps/desarrollo/workspace/3sure-server/venv/local/lib/python2.7/site-packages/test_utils/management/commands/quicktest.py", line 30, in handle
    failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive)
  File "/apps/desarrollo/workspace/3sure-server/venv/local/lib/python2.7/site-packages/test_utils/test_runners/keep_database.py", line 30, in run_tests
    setup_test_environment()
NameError: global name 'setup_test_environment' is not defined

我已经通过pip安装了django-test-utils,并在我的settings.py中引用了这个应用。我是不是漏掉了什么安装步骤?

我使用的是Django==1.4.3和django-test-utils==0.3

谢谢。

1 个回答

0

这个包非常老旧。它最后支持的版本是Django 1.2。从错误信息和调用setup_test_environment的地方来看,我猜你的pip版本可能也更老。

如果你去看一下Github上的源代码,你会发现文件keep_database.py已经更新,专门引入了setup_test_environment

from django.test.utils import setup_test_environment

这个在旧版本的代码里是没有的,而你可能安装的就是这些旧版本的代码,所以才会出现错误。

总之,这个项目整体上都很老旧,建议你找个替代品。不过如果你非得用这个项目的话,我建议你从上面的Github链接获取一个新的分支,然后通过setup.py手动安装。

撰写回答