開発環境・ツール

開発者コンソールでApexを実行してデバッグする手順

開発者コンソールは、デプロイを挟まずにApexコードをその場で試せる場所です。クラスの作成から匿名実行、ログの確認、テストクラスの実行とカバー率の確認までを順に説明します。

2021.02.01

なぜ開発者コンソールを使うのか

Apexのコードを1行直すたびに、デプロイして組織に反映していては時間がかかります。開発者コンソールは、組織にログインしたブラウザ上でApexクラスを直接作成・保存でき、匿名Apexでその場に実行して結果を確認できます。ちょっとした検証や、ログを見ながらのデバッグに向いています。

ワークスペースを用意する

開発者コンソールを開くと、最初は既定のワークスペース(Default)だけがある状態です。クラスやページをまとめる単位として、作業用のワークスペースを作っておきます。

  1. 開発者コンソールを開く

    画面右上のユーザーアイコンから「開発者コンソール」を選びます。

  2. 新しいワークスペースを作る

    [Workspace] メニューから [New Workspace] を選び、名前を付けます。

開いたばかりの開発者コンソール。上にFileやDebugのメニュー、下にLogsタブがあり中身は空
開いた直後は何も無い状態です。上のメニュー列と下のLogsタブの位置を覚えておいてください。
Workspaceメニューを開いた状態。New Workspace... の項目が選択されている
[Workspace]メニューの2番目「New Workspace...」を選びます。
New Workspaceの小さなダイアログ。名前の入力欄にTest workspaceと入っている
名前を入れてOKを押すだけです。名前は後から変更できます。

Apexクラスを作成する

[File] | [New] | [Apex Class] を選び、クラス名を入力します。ここではTestAccountGetClassという名前にします。テキストエディタが開いたら、次のコードに置き換えます。

FileメニューからNewをたどって開いた一覧。先頭のApex Classが選択されている
[File]から[New]をたどると、作れる種類が並びます。一番上のApex Classを選びます。
public class TestAccountGetClass {
    public static Integer getAccountSize() {
        return [SELECT Id, Name FROM Account LIMIT 2].size();
    }
}

取引先の件数を返すだけの、確認用の小さなクラスです。

[File] | [Save] で保存します。保存のタイミングでコンパイルが走り、構文エラーがあればここで指摘されます。

匿名Apexで実行する

作成したクラスを、デプロイせずにその場で呼び出します。

  1. 実行ウィンドウを開く

    [Debug] | [Open Execute Anonymous Window] を選びます。

  2. コードを入力する

    ウィンドウに次のコードを貼り付けます。

  3. 実行する

    [Execute] を押します。

Debugメニューを開いた状態。先頭のOpen Execute Anonymous Windowが選択されている
[Debug]メニューの一番上が匿名実行の入口です。ショートカットはCTRL+Eです。
System.debug(TestAccountGetClass.getAccountSize());

作成したクラスを呼び出し、結果をデバッグログへ出力します。

ログのレベルを確認する

実行結果は[Logs]タブに並びます。目的の行を開き、「Debug Only」にチェックを入れるとSystem.debugの出力だけに絞って読めます。

開発者コンソール下部のLogsタブに、実行日時と状態「成功」、サイズ4.17KBのログが1行だけ並んでいる
実行するとLogsタブに1行増えます。この行をダブルクリックすると中身が開きます。
開いたログの中身。タイムスタンプとイベント名が縦に並び、下にDebug Onlyのチェックボックスがある
1行ずつイベントが並びます。下の「Debug Only」にチェックを入れると出力だけに絞れます。
ログレベルは[Debug] | [Change Log Levels]で設定します。ログレベルはNone・Error・Warn・Info・Debug・Fine・Finer・Finestの8段階で、下から上まで累積します。Fineを選ぶとDebug・Info・Warn・Errorの内容もあわせて記録されます。カテゴリごとに選べるレベルの範囲は異なり、たとえばApex Codeのカテゴリを低く設定していると、目的の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のクラスでは使えません。

テストを実行してカバー率を確認する

  1. テスト実行を開始する

    [Test] | [New Run] を選びます。

  2. 実行するクラスを選ぶ

    [Test Classes]からTestAccountGetClassTestを選び、実行するメソッドにチェックを入れます。

  3. 実行する

    [Run] を押します。

  4. 結果を確認する

    [Tests]タブから実行した行を開き、[Errors]欄にエラーが無いかを確認します。

Testメニューを開いた状態。New Run、Rerun、Run Allなどの項目が並ぶ
[Test]メニューから「New Run」を選ぶと、実行するテストを選ぶ画面が開きます。

カバー率は同じ[Tests]タブの[Overall Code Coverage]から確認できます。対象のクラスを選ぶと、テストで通った行と通らなかった行が背景色で分かれて表示されます。

Overall Code Coverageの一覧。クラスごとにPercentとLinesが並び、対象クラスだけ100%(2/2)になっている
クラスごとの行が並びます。対象のクラスのPercentとLinesの値を見てください。
クラスの中身が表示され、3行目から5行目だけが青い背景色になっている
青くなっている行がテストで通った行です。色の付かない行が残っていないかを見ます。

ここで間違えやすい

間違い何が起きるか
@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 Classicの画面上部。右側にユーザー名と設定リンク、下にホームやChatterなどのタブが並ぶ
右上のユーザー名の部分が入口になります。
右上のユーザー名から開いたメニュー。私のプロファイル、私の設定に続いて開発者コンソールが選択されている
メニューの3番目「開発者コンソール」を選びます。
Select Testsのダイアログ。左にテストクラス一覧、中央にメソッド、右に選択済みのテストが並ぶ
左でクラス、中央でメソッドを選んでRunを押します。
テスト結果の1行。クラス名とメソッド名、実行時間0:00、結果と空のErrors欄が並ぶ
見るのはErrors欄で、空なら通っています。

Salesforceの導入・運用についてご相談ください

導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。