python - AttributeError:类型对象“NoDbTestRunner”没有属性“split”
问题描述
我正在尝试为 Django 2.0 和 python3 创建一个 DiscoverRunner 以跳过数据库创建,但出现此错误:
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/commands/test.py", line 26, in run_from_argv
super().run_from_argv(argv)
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/base.py", line 280, in run_from_argv
parser = self.create_parser(argv[0], argv[1])
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/base.py", line 254, in create_parser
self.add_arguments(parser)
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/core/management/commands/test.py", line 47, in add_arguments
test_runner_class = get_runner(settings, self.test_runner)
File "/home/mlmireles/.virtualenvs/risk-analysis/lib/python3.6/site-packages/django/test/utils.py", line 306, in get_runner
test_path = test_runner_class.split('.')
AttributeError: type object 'NoDbTestRunner' has no attribute 'split'
这是跑步者的代码:
from django.test.runner import DiscoverRunner
class NoDBTestRunner(DiscoverRunner):
def setup_databases(self, **kwargs):
pass
def teardown_databases(self, *args, **kwargs):
pass
解决方案
在Django 文档中的 test_class_runner中, 您会注意到 settings.TEST_RUNNER 需要一个由句点分隔的字符串“。”。sting.split 可以 [在 python 中找到] 文档(https://docs.python.org/3.7/library/stdtypes.html#str.split)
因此,在您的设置文件中,您应该像这样设置 TEST_RUNNER 变量:
TEST_RUNNER = 'yourapp.settings_file.NoDbTestRunner'
假设您的应用程序结构如下所示,并且您的 NoDBTestRunner 类也在您的 settings_file.py 文件中。如果该类不是,您只需将 TEST_RUNNER 的引用更改为指向您的 NoDbTestRunner 所在的位置。
- 你的应用文件夹
- settings_file.py # 这个文件是你设置变量的地方
推荐阅读
- elasticsearch - 默认情况下,在文本字段上禁用 Fielddata 设置 fielddata=true
- python - 使用 pyinstaller 时如何修复无效模块
- python - 由于形状不正确,无法在 Keras 中拟合数据
- css - 如何将搜索图标移动到标题的左侧和右侧的菜单
- bash - 除了移动到每个目录之外,是否有 git 或 bash 方式来提取多个 git 存储库?
- react-native - 下载开放街道地图的tiles.png
- kubernetes - 在没有 systemd 的 debian 拉伸服务器上安装 kubernetes
- gitlab - 如何增加本地 Gitlab 的最大工件大小
- apache-spark - 结构化流写入多个流
- python - 为什么字节文字符号不断出现?