我试图为Django2.0和python3创建一个DiscoverRunner来跳过DB的创建,但是得到了这个错误:
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的代码:
from django.test.runner import DiscoverRunner
class NoDBTestRunner(DiscoverRunner):
def setup_databases(self, **kwargs):
pass
def teardown_databases(self, *args, **kwargs):
pass发布于 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变量:
TEST_RUNNER = 'yourapp.settings_file.NoDbTestRunner'假设您的应用程序结构如下所示,并且您的NoDBTestRunner类也在您的settings_file.py文件中。如果类不是,您只需将TEST_RUNNER的引用更改为指向您的NoDbTestRunner所在的位置。
的位置
https://stackoverflow.com/questions/51638485
复制相似问题