我遇到了 Django (1.10.6) 测试运行器无法找到我的测试的问题。我正在使用Python 3.6。
以下作品:
python manage.py test apps.foo
但这不会:
python manage.py test
我的项目结构如下所示:
apps/
foo/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
urls.py
views.py
manage.py
tests.py
看起来像这样:
from django.test import TestCase
class ConfirmationTests(TestCase):
def setUp(self):
pass
def test_email_confirm(self):
pass
在我的settings.py
:
INSTALLED_APPS = (
...
'apps.foo',
)
测试运行程序无法选取我的测试有什么原因吗?
我发现了这个问题。正如怀疑的那样,这是愚蠢的东西。
我的apps
目录中缺少一个__init__.py
。
apps/
foo/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
urls.py
views.py
__init__.py <-- the offender
manage.py
其他几个地方可以查看:
- 测试文件名应以
test
开头 - 测试中的方法应从
test
- 如果您使用的是
tests
目录,请确保将__init__.py
添加到这些测试文件夹中
仅供记录:我有相同的症状,因为项目目录中有一个额外的__init__.py
文件(包含 manage.py 的同一目录)
找到了要测试的应用程序,但随后我会收到一个错误,即无法导入。