2

我遇到了 Django (1.10.6) Test Runner 无法找到我的测试的问题。我正在使用 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',
)

Test Runner 是否有任何理由无法接受我的测试?

4

3 回答 3

12

我发现了这个问题。正如所怀疑的那样,这是愚蠢的。

__init__.py我的目录中缺少一个apps

apps/
  foo/
    migrations/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    urls.py
    views.py
  __init__.py <-- the offender
manage.py
于 2017-04-04T14:09:48.443 回答
1

其他几个地方可以看:

  • 测试文件名应该以test
  • 测试中的方法应该以test
  • 如果您使用的是tests目录,请务必添加__init__.py到那些测试文件夹
于 2020-03-07T17:37:19.457 回答
0

仅作记录:我有同样的症状,因为项目目录中有一个额外 __init__.py的文件(包含 manage.py 的同一目录)

找到要测试的应用程序,但随后我会收到一个错误,即 . 无法导入。

于 2019-11-07T07:00:55.550 回答