AttributeError:'模块'对象没有属性'tests
我在运行这个命令:
python manage.py test project.apps.app1.tests
结果出现了这个错误:
AttributeError: 'module' object has no attribute 'tests'
下面是我的文件夹结构。我还把app1添加到了我的已安装应用配置里。
Traceback (most recent call last):
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 50, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 71, in execute
super(Command, self).execute(*args, **options)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 88, in handle
failures = test_runner.run_tests(test_labels)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 146, in run_tests
suite = self.build_suite(test_labels, extra_tests)
File "/home/username/local/dev/local/lib/python2.7/site-packages/django/test/runner.py", line 66, in build_suite
tests = self.test_loader.loadTestsFromName(label)
File "/usr/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'tests'
文件夹结构:
12 个回答
5
我遇到了和Chris一样的错误。我删除了一个旧的模型,然后运行了tests.py,但另一个文件(views.py)还是在试图导入那个已经删除的模型。
当我把那个不再需要的导入语句去掉后,问题就解决了。
6
上面Steve Bradshaw的例子可以用来处理导入错误(谢谢Steve)。
其他类型的错误(比如ValueError)也可能导致
AttributeError: 'module' object has no attribute 'tests'
可以查看这些错误是什么
./manage.py shell
from myapp.tests import SomeTestCase
t = SomeTestCase()
23
在我的情况下,我需要在我的 app/tests
文件夹里创建一个空的 __init__.py 文件。
39
使用:
./manage.py shell
然后输入
import myapp.tests
这样可以帮助你找出导入错误的原因。
197
我终于在解决另一个问题时搞明白了。问题是我的测试找不到一个导入。
看起来如果你的测试无法导入,就会出现上面的错误。这是有道理的,因为测试套件无法导入一个有问题的测试。至少我觉得是这样的,因为我在测试文件中修复了导入,结果它就开始正常工作了。
要验证你的测试用例,可以尝试在Python控制台中导入测试用例文件。
举个例子:
from project.apps.app1.tests import *