【问题标题】:django running unittest fail while one of my app named "apps", but "runserver" worksdjango 运行 unittest 失败,而我的一个应用程序名为“apps”,但“runserver”工作
【发布时间】:2013-08-01 07:08:38
【问题描述】:

我有一个 django-project,它的应用程序是这样的:

在应用程序/应用程序中,像往常一样有视图/模型/网址。

"runserver" 与命令配合良好

./manage.py runserver --settings=mysettings 0:8000

但是当我尝试使用下面的命令运行 unittest 时,遇到了 ImportError。

./manage.py test --settings=mysettings

=========================================

Traceback (most recent call last):
  File "/Users/lethe/.envs/django/lib/python2.7/site-packages/nose/loader.py", line 413, in loadTestsFromName
    addr.filename, addr.module)
  File "/Users/lethe/.envs/django/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/Users/lethe/.envs/django/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Users/lethe/PycharmProjects/phone-buddy-oms/src/apps/downloads/tests/test_downloads_models.py", line 5, in <module>
    from apps.models import (AppSource, AppCategory, App, Merchant, Apk)
ImportError: cannot import name Apk

似乎 django unittest frame 无法告诉应用程序或应用程序/应用程序,我尝试使用 django-nose 运行但失败并出现类似错误。

除了更改“应用程序/应用程序”的名称之外,还有其他解决方案吗?谢谢。

【问题讨论】:

  • 运行runserver 和运行test 时的Python 路径是什么(在sys.path 中可用)?我强烈建议重命名您的根应用程序文件夹或“应用程序”应用程序,但我们可以通过确保您的路径设置正确来解决它。
  • 看起来好像您正在使用该屏幕截图中的 pycharm。 This page 可能会有所帮助。
  • 哪个版本的 django?
  • 我正在使用 virtualenv,我的 sys.path 包含我的项目目录:''myproject/src',而所有 python 文件都在 src/apps 下。

标签: python django unit-testing


【解决方案1】:

您的项目主页不应该有 init.py 文件,unittest 将您的项目主页误认为是模块并尝试从那里加载测试但失败(因为它与INSTALLED_APPS 中的应用程序)。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多