“launch.json”ってなに?

QAエンジニア学習記録

そもそも”JSON”ってなに?

JSON(ジェイソン)とは「JavaScript Object Notation」の略で、データのやり取りに適したファイル形式です。

Java Scriptのルールをもとにしたファイル形式で、他言語とのデータやり取りにも使われます。

JSONの基本の表記形式は
{}の中にダブルクォーテーション(“)で囲った「キー名」と対応する「値」をコロン(:)で区切って入力します。値も、数値とプール値以外はダブルクォーテーション(“)で囲います。
{}の中に複数のデータを入力する場合はカンマ(,)で区切ります。

{
  "キー名": 数値,
  "キー名": プール値(true/false),
  "キー名": "文字列"
}

“launch.json”ってなに?

launch.json は、VS Codeに「この方法で実行してね」と伝えるための設定ファイルです。
地図のようなイメージです。

主な役割

  • プロジェクトのルートをカレントディレクトリに固定
     → import modules.xx が確実に通る
  • 「python -m scripts.test1」形式でのモジュール実行を自動化
     → ターミナルで毎回入力しなくても、F5キーで実行可能
  • 環境変数や引数を設定できる
     → .envファイルを読み込んだり、Playwright/Appium用のオプションを渡せる

👉 簡単に言えば「VS Codeに迷わず正しい方法でテストを実行させる地図」です。

どこに作るの?

下記のようなフォルダ構成の場合、プロジェクト直下に”.vscode"を作成して"launch.json"を作成ます。

test_project/
├─ .vscode/ 
│   ├─ launch.json
├─ modules/
│   ├─ __init__.py
│   ├─ xx.py
│   └─ yy.py
└─  scripts/
    ├─ test1.py
    └─ test2.py

なぜ作る必要があるの?

① エラーを防ぐため
scripts/test1.py を直接実行すると modules が見つからず、ModuleNotFoundError が出がちです。
launch.json にルート実行を指定しておけば、F5ひとつで迷わず実行できます。

② 環境変数や引数を一元管理できる
端末名やブラウザ指定、ログ保存先などを launch.json にまとめて管理できます。
毎回手打ちする必要がなくなります。


具体的な設定例と意味(VS Code用)

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Run test1 (module)",
      "type": "debugpy",
      "request": "launch",
      "module": "scripts.test1",      
      "cwd": "${workspaceFolder}",    
      "console": "integratedTerminal"
    }
  ]
}

これでF5を押せば、python -m scripts.test1 と同じ動作になります。

キー名説明
nameVS Codeのデバッグ構成を識別するための表示名
type“debugpy”デバッグ構成。どのデバッガ、ランタイムを使うか識別するキー
request“launch”デバッグ開始の方式を指定するキー
program/module“scripts.test1”デバッグでどのpythonコードを起動するか指定する方法を切り替えるキー
console“integratedTerminal”デバッグ時にプログラムの標準出力をどこで扱うかを指定するフィールド
cwd“${workspaceFolder}”デバッグ実行時のカレントディレクトリ(作業ディレクトリ)を指定するフィールド

まとめ

  • launch.json は「VS Codeに正しい実行方法を教える地図」
  • importエラーが減りF5で常に正しく実行できる
タイトルとURLをコピーしました