開発者コンソールでApexを実行してデバッグする手順
開発者コンソールは、デプロイを挟まずにApexコードをその場で試せる場所です。クラスの作成から匿名実行、ログの確認、テストクラスの実行とカバー率の確認までを順に説明します。
なぜ開発者コンソールを使うのか
Apexのコードを1行直すたびに、デプロイして組織に反映していては時間がかかります。開発者コンソールは、組織にログインしたブラウザ上でApexクラスを直接作成・保存でき、匿名Apexでその場に実行して結果を確認できます。ちょっとした検証や、ログを見ながらのデバッグに向いています。
ワークスペースを用意する
開発者コンソールを開くと、最初は既定のワークスペース(Default)だけがある状態です。クラスやページをまとめる単位として、作業用のワークスペースを作っておきます。
開発者コンソールを開く
画面右上のユーザーアイコンから「開発者コンソール」を選びます。
新しいワークスペースを作る
[Workspace] メニューから [New Workspace] を選び、名前を付けます。
Apexクラスを作成する
[File] | [New] | [Apex Class] を選び、クラス名を入力します。ここではTestAccountGetClassという名前にします。テキストエディタが開いたら、次のコードに置き換えます。
public class TestAccountGetClass { public static Integer getAccountSize() { return [SELECT Id, Name FROM Account LIMIT 2].size(); } }
取引先の件数を返すだけの、確認用の小さなクラスです。
[File] | [Save] で保存します。保存のタイミングでコンパイルが走り、構文エラーがあればここで指摘されます。
匿名Apexで実行する
作成したクラスを、デプロイせずにその場で呼び出します。
実行ウィンドウを開く
[Debug] | [Open Execute Anonymous Window] を選びます。
コードを入力する
ウィンドウに次のコードを貼り付けます。
実行する
[Execute] を押します。
System.debug(TestAccountGetClass.getAccountSize());
作成したクラスを呼び出し、結果をデバッグログへ出力します。
ログのレベルを確認する
実行結果は[Logs]タブに並びます。目的の行を開き、「Debug Only」にチェックを入れるとSystem.debugの出力だけに絞って読めます。
System.debugが記録されないことがあります。⚠️ デバッグログは1件あたり20MBが上限です。超えた分は古い行から削られるため、長時間の実行や大きなループを追うときは、ログレベルを必要な範囲だけに絞っておきます。
テストクラスを作成する
TestAccountGetClassを検証するテストクラスを作ります。[File] | [New] | [Apex Class] から、TestAccountGetClassTestという名前で作成します。
@isTest private class TestAccountGetClassTest { @TestSetup static void makeData() { insert new List<Account>{ new Account(Name = 'サンプル取引先1'), new Account(Name = 'サンプル取引先2') }; } @isTest static void testGetAccountSize() { Test.startTest(); Integer cnt = TestAccountGetClass.getAccountSize(); Test.stopTest(); System.assertEquals(2, cnt); } }
取引先を2件だけ用意してから、getAccountSize()の戻り値を検証します。
@isTest(SeeAllData=true)を付けて、組織の既存データをそのままクエリする書き方は避けます。SeeAllDataが効くのはクエリだけで、レコードの作成や更新には関係しません。組織ごとに既存データの件数は違うため、SeeAllData=trueのテストは組織によって結果が変わり、本番へデプロイしたときに初めて失敗することがあります。既定のSeeAllData=falseのまま、@TestSetupで必要なレコードをテスト側で用意する形にしています。なお@TestSetupはSeeAllData=trueのクラスでは使えません。テストを実行してカバー率を確認する
テスト実行を開始する
[Test] | [New Run] を選びます。
実行するクラスを選ぶ
[Test Classes]から
TestAccountGetClassTestを選び、実行するメソッドにチェックを入れます。実行する
[Run] を押します。
結果を確認する
[Tests]タブから実行した行を開き、[Errors]欄にエラーが無いかを確認します。
カバー率は同じ[Tests]タブの[Overall Code Coverage]から確認できます。対象のクラスを選ぶと、テストで通った行と通らなかった行が背景色で分かれて表示されます。
ここで間違えやすい
| 間違い | 何が起きるか |
|---|---|
@isTest(SeeAllData=true)のまま残す | 組織の既存データに結果が左右され、本番デプロイ時だけ失敗することがあります |
| ログレベルを上げずに実行する | 目的のSystem.debugがログに記録されず、原因調査で見落とします |
| ログを長く出しすぎる | 20MBを超えた分は古い行から削られ、追いたい箇所が消えることがあります |
テストデータを用意せずにgetAccountSize()のようなクエリを検証する | SeeAllData=falseでは組織のデータが見えないため、0件で失敗します |
確認した環境
- 2026年9月 / Salesforce Summer '26(APIバージョン67.0)時点の公式ドキュメントで、ログレベルとデバッグログの上限、
SeeAllDataの挙動を確認しています
まとめ
- 開発者コンソールはデプロイなしでApexを作成・実行でき、ログでその場の挙動を確認できます
- ログレベルは[Debug] | [Change Log Levels]で設定し、累積する8段階です。目的のカテゴリを上げておかないと記録されません
- デバッグログは20MBが上限で、超えた分は古い行から削られます
@isTest(SeeAllData=true)は使いません。@TestSetupなどで必要なテストデータを明示的に作ります- テストの実行結果とカバー率は、どちらも開発者コンソールの[Tests]タブから確認できます
参考:当時の画面
記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。
Salesforceの導入・運用についてご相談ください
導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。