Django无法导入测试模块

时间:2020-01-19 00:58:56

标签: python django django-testing python-3.8

尝试在Django for Beginners一书的简单Django pages应用程序上运行此测试文件。该书建议不涉及数据库导入SimpleTestCase bc。

# pages/tests.py

from django.test import SimpleTestCase

class PagesTests(SimpleTestCase):
    def test_home_page_status_code(self):
        response = self.client.get('/')
        self.assertEqual(response.status_code, 200)

    def test_about_page_status_code(self):
        response = self.client.get('/about/')
        self.assertEqual(response.status_code, 200)

并继续收到此错误消息:

ERROR: pages.tests (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: pages.tests
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
ModuleNotFoundError: No module named 'pages.tests'


----------------------------------------------------------------------
Ran 3 tests in 0.000s

FAILED (errors=3)
(pages) bash-3.2$ python3 manage.py test
System check identified no issues (0 silenced).
EE
======================================================================
ERROR: pages.pages (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: pages.pages
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 470, in _find_test_path
    package = self._get_module_from_name(name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
ModuleNotFoundError: No module named 'pages.pages'


======================================================================
ERROR: pages.pages_project (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: pages.pages_project
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 470, in _find_test_path
    package = self._get_module_from_name(name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
ModuleNotFoundError: No module named 'pages.pages_project'

像django一样找不到测试模块....起初,我以为它变得混乱了,因为有两个名为“页面”的目录,所以我运气不佳地移动了tests.py文件。我还创建了一个单独的测试目录(“没有模块称为pages.test”)

我还使用了两个views.py文件(pages / views.py和pages / pages / views.py),使它们相同,因为我不确定是否是问题所在。大多数SO搜索不会产生Python 8的结果,因此想知道这是否可能是一个因素吗?

这是我的文件树:

    .
    ├── Pipfile
    ├── Pipfile.lock
    ├── pages
    │   ├── Pipfile
    │   ├── Pipfile.lock
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── db.sqlite3
    │   ├── manage.py
    │   ├── migrations
    │   │   └── __init__.py
    │   ├── models.py
    │   ├── pages
    │   │   ├── __init__.py
    │   │   ├── admin.py
    │   │   ├── apps.py
    │   │   ├── migrations
    │   │   │   └── __init__.py
    │   │   ├── models.py
    │   │   ├── urls.py
    │   │   └── views.py
    │   ├── pages_project
    │   │   ├── __init__.py
    │   │   ├── asgi.py
    │   │   ├── settings.py
    │   │   ├── urls.py
    │   │   └── wsgi.py
    │   ├── templates
    │   │   ├── about.html
    │   │   ├── base.html
    │   │   └── home.html
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py

0 个答案:

没有答案