首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分:类型对象'NoDbTestRunner‘没有特性’AttributeError‘

拆分:类型对象'NoDbTestRunner‘没有特性’AttributeError‘
EN

Stack Overflow用户
提问于 2018-08-02 00:47:14
回答 1查看 376关注 0票数 0

我试图为Django2.0和python3创建一个DiscoverRunner来跳过DB的创建,但是得到了这个错误:

代码语言:javascript
复制
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'

下面是runner的代码:

代码语言:javascript
复制
from django.test.runner import DiscoverRunner

class NoDBTestRunner(DiscoverRunner):
    def setup_databases(self, **kwargs):
        pass

    def teardown_databases(self, *args, **kwargs):
        pass
EN

回答 1

Stack Overflow用户

发布于 2018-09-15 04:37:49

在test_class_runner found here in the Django docs中,您会注意到settings.TEST_RUNNER需要一个由句点“.”分隔的字符串。可以在python文档(https://docs.python.org/3.7/library/stdtypes.html#str.split)中找到sting.split

因此,在设置文件中,您应该像这样设置TEST_RUNNER变量:

代码语言:javascript
复制
TEST_RUNNER = 'yourapp.settings_file.NoDbTestRunner'

假设您的应用程序结构如下所示,并且您的NoDBTestRunner类也在您的settings_file.py文件中。如果类不是,您只需将TEST_RUNNER的引用更改为指向您的NoDbTestRunner所在的位置。

  • yourapp folder
    • settings_file.py #此文件是您设置variable

的位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51638485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档