我试图对一段代码进行一些测试,但出现导入错误:开始目录不可导入。下面是我的代码。如果有人可以提供帮助,我将非常感激。我正在使用 Python 2.7.5 和 pycharm。
这是我在 virenv 中执行的命令
manage.py test /project/tests.py
from django.test import TestCase
# Create your tests here.
from project.models import Projects
from signup.models import SignUp
class ProjectTestCase(TestCase):
def SetUp(self):
super(ProjectTestCase,self).SetUp()
self.john = SignUp.objects.get(email='john@john.com')
self.project = Projects.objects.get(pk=1)
def test_project_permission(self):
self.assertFalse(self.john.has_perm('delete',self.project))
self.assertTrue(self.john.has_perm('view',self.project))
self.assertTrue(self.john.has_perm('change',self.project))
最佳答案
- 您应该验证项目目录中是否有
__init__.py
(它可以是空文件) - 您没有正确调用 test。假设您有一个名为project的应用程序,则在该应用程序中调用测试的方法是manage.py测试项目
[编辑其他评论,这确实进入了单独的问题领域]
我建议将其添加到settings.py(在底部)
import sys
if 'test' in sys.argv:
DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
SOUTH_TESTS_MIGRATE = False
这个:
A.将使用 sqlite (某种程度上,我不确定它实际上是 sqlite 还是像 sqlite 一样工作的内存数据库)...如果我使用 postgres 并且我试图让我的权限不要过于自由,我会注意到问题而且我已经中止了测试)
B.禁用向南迁移(因此它将从根据当前模型构建的干净数据库开始)
关于python - Django 测试 - 导入错误 : Start directory is not importable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142923/