Django测试 - ImportError:开始目录不可导入

时间:2014-08-05 15:40:01

标签: python django pycharm

我试图对代码进行一些测试,但是我得到了ImportError:Start目录不可导入。以下是我的代码。如果有人能提供帮助我真的很感激。我使用的是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))

1 个答案:

答案 0 :(得分:3)

  1. 您应该验证项目目录中是否有__init__.py(它可以是空文件)
  2. 您没有正确调用测试。假设您有一个称为项目的应用程序,那么在该应用程序中调用测试的方法是manage.py test project
  3. [编辑其他评论,这是真正进入单独的问题领域]

    我建议将其添加到settings.py(位于底部)

    import sys
    if 'test' in sys.argv:
        DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
        SOUTH_TESTS_MIGRATE = False
    

    此:

    一个。将使用sqlite(有点,我不确定它是否真的是sqlite或内存数据库的工作方式类似于sqlite)...我注意到如果我使用postgres并且我试图让我的权限不是过于自由的问题我有一个测试中止)

    B中。禁用南迁移(因此它将从针对当前所说的任何模型构建的干净数据库开始)