尝试在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