あらすじ
Pytestを使っていて気が付いたことです。
これは入門者泣かせですね。
どこのPythonを使うのかっていう指定があっちこっち散乱しているという悪夢。
別なのかよ
F5
デバッグや、Debug test
では正常にインポートされますが、Run test
すると下記のエラーが出ました。
E ModuleNotFoundError: No module named `??????????`
Pythonでは、import
するときの Base Directory として、sys.path
内にリストされたアドレスを使います。
PylintやF5
デバッグ、Debug test
では、settings.json
のpython.envFile
内に記述した、PYTHONPATH=./
が Base Directory です。
ところがRun test
では、Base Directory を決める際に、実行するテストのあるディレクトリから上に向かって検索し、__init__.py
が無い最初のディレクトリを Base Directory として登録するようです。
Note: Good Integration Practices
上記リンク切れです。2021/04/12→ここ
The src directory layout is still strongly recommended however.
「src - tests」スタイルのディレクトリ構成がものすごくオススメされています。
環境
{
"recommendations": [
"ms-python.python",
"visualstudioexptteam.vscodeintellicode",
"oderwat.indent-rainbow",
"kameshkotwani.google-search"
]
}
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {"PYTHONPATH":"./"},
"justMyCode": true
}
]
}
{
"python.testing.pytestEnabled": true,
"python.formatting.provider": "black",
"python.envFile": "${workspaceFolder}/.env",
}
Excelsior!