我已经一行一行地复制了一个正在工作的测试,并且刚刚更改了几个名称(至少我是这么想的),现在我得到了一个非常神秘的错误:(我用FOO,BAR替换了一些东西)
ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
问题是我根本不理解这个错误。这个错误信息是什么意思?
完整堆栈跟踪:
Traceback (most recent call last):
File "BAR/modeling/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/jonathan/anaconda/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 "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute
super(Command, self).execute(*args, **options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle
failures = test_runner.run_tests(test_labels)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 531, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/test/runner.py", line 451, in build_suite
tests = self.test_loader.discover(start_dir=label, **kwargs)
File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 206, in discover
tests = list(self._find_tests(start_dir, pattern))
File "/Users/jonathan/anaconda/lib/python2.7/unittest/loader.py", line 267, in _find_tests
raise ImportError(msg % (mod_name, module_dir, expected_dir))
ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed?
如果您创建了一个名为tests的目录并在其中写入了测试文件,例如test_views.py、test_models.py等,请确保删除由命令“python manage.py startapp”自动创建的文件“test.py”
正如Daniel Hepper在上面的评论中所说,尝试检查你的应用中是否同时有一个
app/tests
文件夹和一个app/tests.py
文件。Django
startapp
会自动创建一个tests.py
文件,因此可能有一个您没有注意到的文件。如果您只是删除自动生成的
tests.py
文件,它应该可以工作。(显然,在删除任何内容之前,您应该检查文件的内容!)根据我的经验,运行测试时出现的奇怪的重要事件是由测试模块本身的重要事件引起的。
确保可以导入测试模块:
编辑:
如果这会导致错误,请确保没有目录
foo/exports/tests
和文件foo/exports/tests.py
相关问题 更多 >
编程相关推荐