这对我来说非常奇怪,事情一直很好,直到今天早上。
当我尝试使用以下命令运行我的单元测试时(我将Python3软链接到python)
clear; python manage.py test list tests/
我现在收到以下错误消息:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python3.4/site-packages/django/core/management /__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/lib/python3.4/site-packages/django/core/management /__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python3.4/site-packages/django/core/management/commands /test.py", line 50, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/usr/lib/python3.4/site-packages/django/core/management /base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/lib/python3.4/site-packages/django/core/management/commands /test.py", line 71, in execute
super(Command, self).execute(*args, **options)
File "/usr/lib/python3.4/site-packages/django/core/management /base.py", line 338, in execute
output = self.handle(*args, **options)
File "/usr/lib/python3.4/site-packages/django/core/management/commands /test.py", line 88, in handle
failures = test_runner.run_tests(test_labels)
File "/usr/lib/python3.4/site-packages/django/test/runner.py", line 146, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/usr/lib/python3.4/site-packages/django/test/runner.py", line 101, in build_suite
suite.addTests(tests)
File "/usr/lib64/python3.4/unittest/suite.py", line 60, in addTests
for test in tests:
TypeError: 'NoneType' object is not iterable
我最初认为我写了一些完全搞砸了所有内容的东西,所以我把它保存为一个分支,在主分支中恢复到一个提交,我很有效,但我收到完全相同的错误信息。
我想不出我做过的任何让事情失败的事情,事实上,上面并没有指出任何我写的(在我的情况下,我是相对较新的Python / Django)让我很难调试错误。
我能想到的唯一改变的是我安装的The Silver Searcher(我使用的是vim),我删除了它,但仍然会发生同样的错误。
我重新安装了django,但仍无济于事。
这是:
有人可以帮助我吗
谢谢
答案 0 :(得分:13)
刚出现这个错误,这个错误是由我几个月前解决的问题引起的,并且偶然发生了一次又一次。
问题是当你为django test指定目录时,你应该使用python表示法来表示目录,而不是标准的shell表示法。例如
正确 - project.tests.test_module
不正确 - project/tests/test_module.py
答案 1 :(得分:3)
我无法解释为什么会这样,但是当我在没有指定文件名的情况下运行“python manage.py test list / ”时,事情运行得非常顺利。
感谢用户Ella Shar,我将更改方案/布局我将测试设置为批准的点缀格式,如documentation
中所述