VS CodeでSalesforce開発環境を整える現行の手順
VS CodeにSalesforce用の拡張機能を入れ、組織へ接続してソースを取得し、Apexのテストクラスを実行できる状態にする手順を説明します。
用意するもの
Visual Studio Codeをインストールする
公式サイト(code.visualstudio.com)から、使っているOS用の最新版をダウンロードしてインストールします。すでに入っている場合は入れ直す必要はありません。
JDKをインストールする
Salesforce拡張機能はJDKのバージョン11・17・21のいずれかを必要とします。入っていない場合は先に用意します。
Salesforce CLIをインストールする
拡張機能はSalesforce CLI(
sfコマンド)を前提にします。公式サイトの案内に沿ってインストールしておきます。
⚠️ 以前はJDK 11だけで足りましたが、現在はJDK 11・17・21のいずれかが必要です。バージョンの確認は、コマンドプロンプトやターミナルで次を実行します。
java -version
インストール済みのJavaのバージョンを表示します。
拡張機能を入れる
VS Codeの左のツールバーから拡張機能アイコンを開き、「Salesforce Extension Pack」を検索して「Install」をクリックします。Apex・Visualforce・LWC・SOQLなど、Salesforce開発に使う拡張機能がまとめて入ります。
拡張機能が動くことを確かめる
コマンドパレット(WindowsとLinuxはCtrl+Shift+P、macOSはCmd+Shift+P)を開き、「sfdx」と入力します。Salesforce拡張機能が提供するコマンドが一覧に出てくれば、拡張機能は正しく動いています。
⚠️ コマンド名は現在もSFDX:から始まります。画面上の表記は変わっていませんが、実行される中身は現行のSalesforce CLI(sfコマンド)です。
プロジェクトを作る
コマンドパレットで「SFDX: Create Project」と入力してEnterキーを押し、標準テンプレートを選びます。プロジェクト名(例:MyFirstSfdcProject)を入力し、保存先のフォルダを選ぶとプロジェクトが作られます。
組織を認証する
コマンドパレットで「SFDX: Authorize an Org」を選び、認証する環境(本番組織か、Sandboxか)を選びます。既定のブラウザが開き、Salesforceのログイン画面が表示されるので、ユーザー名とパスワードを入力してログインし、アクセスを許可します。ログインが成功すれば、VS Codeから対象の組織へ接続できる状態になります。
メタデータを取得する
エクスプローラーでpackage.xmlを右クリックし、「SFDX: Retrieve Source in Manifest from Org」を選びます。取得に成功すると、通知でメッセージが表示されます。
Apexクラスを作る
classesフォルダを右クリックし、「SFDX: Create Apex Class」を選んでクラス名を入力します。作られた初期コードを、次の内容に置き換えます。
public class TestAccountGetClass { public static Integer getAccountSize() { return [SELECT Id, Name FROM Account LIMIT 2].size(); } }
取引先の件数を返すだけの単純なApexクラスです。
保存したら、クラスを右クリックして「SFDX: Deploy This Source to Org」を選び、組織にデプロイします。成功すると通知が表示されます。
テストクラスを作る
TestAccountGetClassTestという名前でクラスを作り、次の内容に置き換えます。
@isTest private class TestAccountGetClassTest { @isTest static void testMethod1() { List<Account> testAccounts = new List<Account>{ new Account(Name = 'Test Account 1'), new Account(Name = 'Test Account 2') }; insert testAccounts; Test.startTest(); Integer cnt = TestAccountGetClass.getAccountSize(); Test.stopTest(); System.assertEquals(2, cnt); } }
取引先のテストデータを自分で作ってから、getAccountSize()の戻り値を確かめるテストです。
⚠️ @isTest(SeeAllData=true)は使いません。このアノテーションは、テストの中から組織の既存データを直接見られるようにするものです。組織のデータ状況に結果が左右されるうえ、本番の実データに依存する作りにもなりかねません。上のコードのように、テストに必要なデータはテストメソッドの中で作ります。
保存してデプロイします。
テストを実行する
Apexのテストサイドバーなどから対象のテストクラスを選び、「Run Test」を実行します。正常に実行されると、成功のメッセージとテスト結果が表示されます。
ここで間違えやすい
| 間違い | 何が起きるか |
|---|---|
| JDKが11・17・21のいずれでもない | Salesforce拡張機能が正しく動きません |
| Salesforce CLIを入れずに拡張機能だけ入れる | 認証やデプロイのコマンドが動きません |
テストで@isTest(SeeAllData=true)に頼る | 組織のデータ状況でテスト結果が変わります。テストデータは自分で作ります |
| CI/CDでもブラウザ認証を使おうとする | 画面を開けない環境ではブラウザ認証は動きません。JWTベアラーフローなど別の認証を使います |
確認した環境
- 2026年9月 / Salesforce Summer '26(APIバージョン67.0)時点の公式ドキュメントで、JDK要件・CLIの前提・OAuthの既定ブロックを確認しています
- 表示されるメッセージや画面の文言は、お使いのバージョンで多少異なることがあります
まとめ
- Salesforce拡張機能には、JDK 11・17・21のいずれかとSalesforce CLIが必要です
- VS Codeのコマンドは今も
SFDX:から始まりますが、内部では現行のSalesforce CLIが動きます - 「SFDX: Authorize an Org」の認証はOAuthのブラウザ経由フローです。ユーザー名パスワードフローとは別物で、後者はSummer '23以降に作成された組織では既定でブロックされています
- テストクラスで
@isTest(SeeAllData=true)は使いません。必要なデータはテストメソッドの中で作ります - CI/CDなど画面を開けない自動化の認証には、JWTベアラーフローなど別の方式を使います
参考:当時の画面
記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。
Salesforceの導入・運用についてご相談ください
導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。