运行测试时找不到Django中安装的应用程序

时间:2016-08-28 02:01:25

标签: python django testing module

我有一个非常简单的Django应用程序,我正在尝试运行单元测试。在我的tests.py文件中,我正在尝试导入父应用程序视图文件。我试过了。导入视图'但得到了一个错误:

SystemError: Parent module '' not loaded, cannot perform relative import

我读到当相对路径不起作用时,你可以尝试使用绝对路径,所以我尝试了从菜单导入视图'但是得到了另一个错误:

ImportError: No module named 'menu'

当我为应用程序运行本地服务器时,它运行正常。它只有当我运行'覆盖运行'覆盖运行菜单/ tests.py'。由于它运行正常,并且该模块在我设置的应用程序中,我不完全确定为什么会发生这种情况。

菜单/ tests.py

import unittest

from menu import views

class ModelTestCase(unittest.TestCase):
    def setUp(self):
        pass

    def test_menu(self):
        pass

if __name__ == '__main__':
    unittest.main()

settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'menu',
    'django_nose'
)

回溯

timothybaney$ coverage run menu/tests.py
Traceback (most recent call last):
  File "menu/tests.py", line 3, in <module>
    from menu import views
ImportError: No module named 'menu'

1 个答案:

答案 0 :(得分:2)

你提供给我们的信息不多......但是当我看一下Traceback时,它会说File 'menu/tests.py'。因此,如果views.py也在菜单文件夹中,您可以写:

import views

如果views.py位于主文件夹中,您可以写:

from ..main import views   #replace 'main' with your folder name