Django测试ImportError:开始目录不是importab

2024-04-20 01:07:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一段代码上做一些测试,但是我得到了一个重要的错误:Start目录不可导入。下面是我的代码。如果有人能帮忙我会很感激的。我使用的是python2.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))

Tags: 代码frompytestimportselfprojectmodels
1条回答
网友
1楼 · 发布于 2024-04-20 01:07:49
  1. 您应该确认您的项目目录中有一个__init__.py(它可以是一个空文件)
  2. 你没有正确调用测试。假设您有一个名为project的应用程序,调用该应用程序中的测试的方法是管理.py试验项目

[编辑其他评论,这是真正进入单独的问题领域]

我建议把这个加到设置.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.禁用south迁移(因此它将从一个干净的数据库开始,该数据库是根据当前的模型构建的)

相关问题 更多 >