ImportError:运行时没有名为simple的模块管理.pyDjango项目中的测试

2024-09-27 21:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

回溯:

./manage.py test my_app
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv
    super(Command, self).run_from_argv(argv)
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 381, in run_from_argv
    parser = self.create_parser(argv[0], argv[1])
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 354, in create_parser
    self.add_arguments(parser)
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 52, in add_arguments
    test_runner_class = get_runner(settings, self.test_runner)
  File "/home/zuber/projects/private-CR/env/local/lib/python2.7/site-packages/django/test/utils.py", line 152, in get_runner
    test_module = __import__(test_module_name, {}, {}, force_str(test_path[-1]))
ImportError: No module named simple

我试图从app文件夹中删除init.py,然后我得到了“没有名为app_name的模块”。当我从项目文件夹中删除init.py时,控制台说“没有名为settings的模块”。如何测试我的应用程序?在


Tags: inpytestenvhomeliblocalline
3条回答

对我来说,在使用Pycharm时,问题是Pycharm测试运行程序与django2.0不兼容

解决办法是: 将第254行:EOF替换为

  if VERSION[1] > 1 or VERSION[0] > 1:
    return DjangoTeamcityTestRunner(**options).run_tests(test_labels,
                                                         extra_tests=extra_tests, **options)

  return run_the_old_way(extra_tests, options, test_labels, verbosity)

而不是:

^{pr2}$

我通过移除

TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner'

从设置.py在

参见相关问题running all tests post django 1.6

所以首先,你需要把你的两个__init__.py放回你找到它们的地方。它们允许您从该模块导入内容。其次,你应该把代码放在manage.py中,这样我们对发生的事情有了更好的了解,但是在我看来,你有一行看起来像import django.contrib.admin.util或{}。此模块已在您使用的django版本中删除,因此您应该将django.contrib.admin.util的任何出现替换为django.contrib.admin.utils。在

相关问题 更多 >

    热门问题