Django test ImportError: No module named 'taskbuster.unittests'
Django test ImportError: No module named 'taskbuster.unittests'
我根据教程创建了一个项目,当我运行进行测试时,它似乎创建了测试数据库和运行脚本,但我得到一个错误
ImportError: No module named 'taskbuster.module_name'
我已经更改了 virtualenvwrapper postactivate 中的设置。只会让事情变得更糟,这意味着测试根本没有开始。
我已经更改了 base.py 设置文件中的路径,但这只会让事情变得更糟。
├── db.sqlite3
├── functional_tests
│ ├── __init__.py
│ └── test_all_users.py
├── __init__.py
├── manage.py
├── taskbuster
│ ├── __init__.py
│ ├── settings
│ │ ├── base.py
│ │ ├── development.py
│ │ ├── __init__.py
│ │ ├── production.py
│ │ └── testing.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── unittests
├── admin.py
├── __init__.py
├── migrations
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-34.pyc
├── models.py
├── __pycache__
│ ├── admin.cpython-34.pyc
│ ├── __init__.cpython-34.pyc
│ └── models.cpython-34.pyc
├── tests.py
└── views.py
这是settings/base.pyINSTALLED_APPS的内容
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'unittests',
)
testing.py
# -*- coding: utf-8 -*-
from .base import *
DEBUG = True
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")
application = get_wsgi_application()
manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
在 tb_test
后激活
#!/bin/bash
# This hook is sourced after this virtualenv is activated.
export DJANGO_SETTINGS_MODULE="taskbuster.settings.testing"
export SECRET_KEY="" (Secretkey has a value in the actual code)
在 tb_test
中预停用
#!/bin/bash
# This hook is sourced before this virtualenv is deactivated.
unset DJANGO_SETTINGS_MODULE
unset SECRET_KEY
我已经激活了tb_test
$ workon tb_test
然后我运行一个python测试
$python manage.py test
本教程实际上与 functional_tests 一起使用,但由于那不起作用,我创建了一个 Django 应用程序单元测试,这就是为什么它们都在其中。
我希望有人能帮助解决这个问题。
提前致谢。
发生的情况是每个目录下的人不知道其他目录。导入无法在目录层次结构中查找。
你可以做的是教 Python 在哪里寻找图书馆
export PYTHONPATH=$PYTHONPATH:/path/to/project
不过,这是 'low level' 方式。应该有适当的设置来解决这个问题。
我根据教程创建了一个项目,当我运行进行测试时,它似乎创建了测试数据库和运行脚本,但我得到一个错误
ImportError: No module named 'taskbuster.module_name'
我已经更改了 virtualenvwrapper postactivate 中的设置。只会让事情变得更糟,这意味着测试根本没有开始。 我已经更改了 base.py 设置文件中的路径,但这只会让事情变得更糟。
├── db.sqlite3
├── functional_tests
│ ├── __init__.py
│ └── test_all_users.py
├── __init__.py
├── manage.py
├── taskbuster
│ ├── __init__.py
│ ├── settings
│ │ ├── base.py
│ │ ├── development.py
│ │ ├── __init__.py
│ │ ├── production.py
│ │ └── testing.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── unittests
├── admin.py
├── __init__.py
├── migrations
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-34.pyc
├── models.py
├── __pycache__
│ ├── admin.cpython-34.pyc
│ ├── __init__.cpython-34.pyc
│ └── models.cpython-34.pyc
├── tests.py
└── views.py
这是settings/base.pyINSTALLED_APPS的内容
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'unittests',
)
testing.py
# -*- coding: utf-8 -*-
from .base import *
DEBUG = True
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")
application = get_wsgi_application()
manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
在 tb_test
后激活#!/bin/bash
# This hook is sourced after this virtualenv is activated.
export DJANGO_SETTINGS_MODULE="taskbuster.settings.testing"
export SECRET_KEY="" (Secretkey has a value in the actual code)
在 tb_test
中预停用#!/bin/bash
# This hook is sourced before this virtualenv is deactivated.
unset DJANGO_SETTINGS_MODULE
unset SECRET_KEY
我已经激活了tb_test
$ workon tb_test
然后我运行一个python测试
$python manage.py test
本教程实际上与 functional_tests 一起使用,但由于那不起作用,我创建了一个 Django 应用程序单元测试,这就是为什么它们都在其中。
我希望有人能帮助解决这个问题。
提前致谢。
发生的情况是每个目录下的人不知道其他目录。导入无法在目录层次结构中查找。
你可以做的是教 Python 在哪里寻找图书馆
export PYTHONPATH=$PYTHONPATH:/path/to/project
不过,这是 'low level' 方式。应该有适当的设置来解决这个问题。