【发布时间】:2019-08-25 23:17:52
【问题描述】:
我正在尝试在 python 中模拟导入以进行测试。我的代码看起来像这样。
"""Python file description."""
import sys
import pytest
import datetime as dt
from unittest.mock import Mock
sys.modules['module_A'] = Mock()
from module_to_test import function_to_test
我需要模拟 module_A 作为 module_to_test 的依赖项。
在保存时,VSCode 会按字母顺序自动排序,因此会在尝试从具有依赖项的模块导入后创建 Mock。
如何防止排序导入对文件子集进行排序?这可以通过文件列表、glob、正则表达式或类似方式实现?
测试文件的全局模式./tests/test_*.py.
更新 - 下面发布了部分解决方案。
【问题讨论】:
-
那么这里优先级更高的问题是什么,模拟模块或取消排序导入?推荐阅读:meta.stackexchange.com/questions/66377/what-is-the-xy-problem,维基百科:en.wikipedia.org/wiki/XY_problem
-
@0xc0de 我的首要任务是让我的测试运行,以便我可以尽快部署我的脚本。在线添加到
settings.json所需的时间 - 2 分钟。阅读、理解和重构我的测试所花费的时间——很多分钟。 -
@0xc0de 这并不是说我最终不会,或者按照 pep8 这样做不是正确的做法。
-
这些时间也将帮助您在未来快速完成符合 pep8 的工作。
标签: python visual-studio-code vscode-settings