Lit*_*les 3 python visual-studio-code vscode-settings
我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)
我需要模拟module_A作为module_to_test.
保存时,VSCode 会自动按字母顺序排序,因此在尝试从具有依赖项的模块导入后创建 Mock。
如何防止排序导入对文件子集进行排序?这可能是通过文件列表、glob、regex 或类似的?
测试文件的全局模式 ./tests/test_*.py.
更新- 下面发布了部分解决方案。
小智 7
如果像我一样,您的 VSCode 配置使用 isort(而不是 autopep8)进行导入排序,那么您可以像这样有选择地覆盖它:
app = Flask(__name__)
from . import views # isort:skip
Run Code Online (Sandbox Code Playgroud)
即在# isort:skip你不想跳转到文件顶部的导入中添加注释。
来源:https : //github.com/timothycrosley/isort#skip-processing-of-imports-outside-of-configuration
VS Code 在保存时运行autopep8 ,您可以在行末尾添加# noqa或注释以从检查/排序中排除该行:# nopep8
sys.modules['module_A'] = Mock()
from module_to_test import function_to_test # noqa
Run Code Online (Sandbox Code Playgroud)
目前,您无法通过 VS Code 特定的设置(打开或关闭)关闭每个模块级别的导入排序。它需要以某种方式得到 isort 本身的支持。
| 归档时间: |
|
| 查看次数: |
3289 次 |
| 最近记录: |