Django无法导入测试模块

问题描述 投票:0回答:1

[尝试在Django初学者书籍中的简单Django页面应用上运行此测试文件。该书建议不涉及数据库导入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找不到测试模块...。起初,我以为它变得混乱了,因为有两个名为'pages'的目录,所以我运气不佳地移动了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
python django django-testing python-3.8
1个回答
0
投票

尝试在顶部导入TestCase

from django.test import TestCase

另外,请在括号中提及TestCase而不是SimpleTestCase

© www.soinside.com 2019 - 2024. All rights reserved.