我有一个非常简单的Django应用,正在尝试运行单元测试。在我的tests.py
文件中,我尝试导入父应用程序视图文件。我尝试过from . import views
但出现错误:
SystemError: Parent module '' not loaded, cannot perform relative import
我读到,当相对路径不起作用时,您可以尝试使用绝对路径,因此我尝试了from menu import views
但又遇到了另一个错误:
ImportError: No module named 'menu'
当我为应用程序运行本地服务器时,它工作正常。只有我跑步的时候coverage run 'coverage run menu/tests.py
。由于它运行良好,并且该模块位于我settings
已安装的应用程序中,因此我不确定为什么会发生这种情况。
menu / 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'
您提供给我们的信息不多。.但是当我看一下Traceback时会说File 'menu/tests.py'
。因此,如果views.py也位于“文件夹”菜单中,则可以编写:
import views
如果views.py位于主文件夹中,则可以编写:
from ..main import views #replace 'main' with your folder name
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句