Salesforceにおけるサブセットとは?実行方法や結果取得方法を解説
IT・技術関連
更新日:2024.09.05
エンジニア採用
Salesforceにおけるサブセットとは? サブセットとはその名の通り全体の一部、機能制限という意味でフルセットの対義語です。サブセットは、一部のデータを本番データや大規模のデータベースから保持または、抽出します。開発の際に必要な情報だけを社内のチームメンバーと共有、開発できます。 テストのサブセットを実行することによって、機密データが誤って情報開示されてしまったとしても、リスクを軽減できるのです。 Salesforceでリリースするテストのサブセットを実行して快適な開発を行っていきましょう。
Salesforceのリリースでのテストのサブセット実行注意点
Salesforceのリリースでのテストのサブセット実行時の注意点を紹介していきます。 テストのレベルによってリリースで実行するテストの制御が強化されるので、Apexコンポーネントの場合は、リリース時にテストのサブセットを実行すると本番環境へのリリース時間を短縮できます。 また、本番環境のデフォルトのテスト実行動作も変更されていて、テストレベルが指定されていないときはデフォルトでリリースパッケージにApexクラスもしくはトリガが含まれる場合を除いて、テストが実行されないようになっているので注意してください。 リリースの失敗の原因になってしまうので、最初にSandboxでリリースをテストして、指定したクラスが各コンポーネントを十分にカバーしている事をチェックしましょう。 リリースのApexコンポーネントのコードカバー率が75%未満の場合や指定したテストのどれかに失敗した場合も同様にリリースの失敗の原因になってしまうので注意してください。 環境の全体的なコードカバー率が75%以上でもApexコンポーネントそれぞれのカバー率が75%未満のことがあるので、コードカバー率の要件を満たしていない場合は他のテストを記述してリリースに含めましょう。 出典:リリースでのテストのサブセットの実行|Salesforce公式サイト 参照:https://developer.salesforce.com/docs/atlas.ja-jp.api_meta.meta/api_meta/meta_deploy_run_specific_tests.htmSalesforceのメタデータAPIのApexコンポーネントのサブセットの場合
メタデータAPIのApexコンポーネントのサブセットを例に紹介します。 Salesforceのテストサブセットを実行するには、DeployOptionsオブジェクトに[RunSpecifiedTests]テストレベルを設定してください。その次に、DeployOptionsに実行する各テストクラスを指定します。最後に、DeployOptionsを引数としてDeploy()コールに渡します。 コードは以下の通りになります。
//DeployOptionsオブジェクトを作成します。
DeployOptions deployOptions = new DeployOptions();
//適切なテストレベルを設定します。
deployOptions.setTestLevel(TestLevel.RunSpecifiedTests);
//実行するテストクラスを指定します。
//文字列配列にはテストクラス名が含まれます。
String[] tests = {""TestClass1"", ""TestClass2"", ""TestClass3""};
//テストクラス名の配列を展開オプションに追加します。
deployOptions.setRunTests(tests);
//deployOptionsオブジェクトを引数として渡して、deploy()を呼び出します。
AsyncResult asyncResult = metadatabinding.deploy(zipBytes,deployOptions);
以下の点についても気をつけたいポイントなので考慮して実行を進めてください。
指定できるのはテストクラスのみで、それぞれのテストメソッドは指定できないので覚えておきましょう。また、リリース時間が短縮されるので、コードカバー率の要件を満たす最小限のテストを含めるようにテストクラスを再構成しましょう。
対象環境のトリガを無効化するには、以前有効な状態でリリースされたトリガを、無効な状態でリリースするようにしましょう。
SalesforceのAnt移行ツールでのサブセットの場合
主な条件は上記で説明したSalesforceのリリースでのテストのサブセット実行注意点とほとんど同じなので、この章ではその先について紹介していきます。 テストのサブセットを実行するには、testLevel=””RunSpecifiedTests””パラメータをリリースターゲットに追加します。 sf:deploy要素の中の<run Test></run Test>子要素に、リリースターゲットに実行する各テストクラスを指定していきます。 <run Test></run Test>タグ内にテストクラスを追加します。テストクラスに一つずつ<run Test>タグを追加していきます。 今回のリリースターゲットの例は、3つのテストクラスを示します。このパッケージのリリース時にSalesforceがこのテストクラスを実行します。
<target name=""deployCode"">
<sf:deploy username=""${sf.username}"" password=""${sf.password}""
sessionId=""${sf.sessionId}"" serverurl=""${sf.serverurl}""
deployroot=""codepkg"" testLevel=""RunSpecifiedTests"">
<runTest>TestClass1</runTest>
<runTest>TestClass2</runTest>
<runTest>TestClass3</runTest>
</sf:deploy>
</target>
テストクラス名は名前空間プレフィックスを含めることもできます。
チームに名前空間が定義されている場合や、テストクラスが管理パッケージに属する場合には名前空間プレフィックスを追加します。
例:名前空間がMyNamespaceのときはテストクラスをMyNamespace.TestClass1と指定します。
Salesforceでは名前空間プレフィックスの条件は「1文字目が英字になっている」「1〜15文字までの英数字を含んでいる」「アンダースコア(_)を2つ以上続けて入力されていない」の通りです。(例:123Company、my__npは使用できません。)
ターゲットで実行するテストクラスを指定しない場合は、本番環境へのリリース時にデフォルトのリリース動作が適用されます。デフォルトでは、インストール済みの管理パッケージから発生したテストを除いて、リリース時に組織全てのテストが実行されます。
デフォルトのコードカバー率要件も適応されます。この要件では、全てのクラスとトリガでの全体の最小カバー率が75%となっていて、トリガは0%のカバー率のものは許可されないので注意しましょう。
Salesforceでサブセットを活用して開発に役立てよう!
今回はサブセットについてと、Salesforceでのサブセットの実行と注意点について紹介していきました。 サブセットは、必要な情報だけをチームメンバーと共有やテストができます。機密情報が漏れてもリスクを軽減できるメリットや、テストのレベルによってリリースで実行されるテスト制限が強化される場合があります。 リリース時にサブセットを実行すると、本番環境へのリリース時間を短縮できますので、とてもスムーズになります。ぜひ覚えておきましょう。]]>この記事の監修者・著者
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
ITエンジニアの派遣を利用したい企業様へ
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。