【发布时间】:2021-12-28 16:49:27
【问题描述】:
我有一个名为 edison 的 django 应用程序,其中包含多个 django-apps。我使用覆盖率对它们进行测试:
coverage run --source='.' edison/manage.py test application_one
coverage run --source='.' edison/manage.py test application_two
...
我的回购结构是:
-- edison [the repo name]
-- edison [a django application]
-- schuedled_jobs
-- internal_packages
在我的测试文件中,我从internal_packages 目录导入内容,当我运行覆盖命令时出现错误
ModuleNotFoundError: No module named 'internal_packages'。
我的问题是:如何将覆盖范围的工作目录更改为根目录 - 所以它会识别所有模块?
【问题讨论】:
-
您可能只需将 internal_packages 添加到系统路径即可。
sys.path.append('relative/path/to/internal_packages/from/edison_app_folder')。在导入之前执行此操作。 -
我最终得到了
sys.path.append(os.getcwd()),它解决了我的问题。但我希望在命令行级别解决它,而不是更改我的 python 代码
标签: python django unit-testing testing code-coverage