この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

リリースでのテストのサブセットの実行

テストレベルにより、リリースで実行するテストに対する制御が強化されます。本番組織へのリリース時間を短縮するには、Apex コンポーネントのリリース時にテストのサブセットを実行します。本番組織のデフォルトのテスト実行動作も変更されました。テストレベルが指定されていないときは、デフォルトで、リリースパッケージに Apex クラスまたはトリガが含まれる場合を除き、テストが実行されません。

リリースの Apex コンポーネントのコードカバー率が 75% 未満の場合は、リリースに失敗します。指定したテストのいずれかに失敗した場合も、リリースに失敗します。最初に Sandbox でリリースをテストし、指定したテストが各コンポーネントを十分にカバーすることを確認することをお勧めします。組織の全体的なコードカバー率が 75% 以上でも、Apex コンポーネントの個々のカバー率が 75% 未満のことがあります。コードカバー率の要件を満たしていない場合は、他のテストを記述してリリースに含めます。

テストのサブセットを実行するには、DeployOptions オブジェクトに RunSpecifiedTests テストレベルを設定します。次に、DeployOptions に実行する各テストクラスを指定します。最後に、DeployOptions を引数として deploy() コールに渡します。次の例は、これらの手順を実行して、指定したテストクラスのみを実行します。

1// Create the DeployOptions object.
2DeployOptions deployOptions = new DeployOptions();
3
4// Set the appropriate test level.
5deployOptions.setTestLevel(TestLevel.RunSpecifiedTests);
6
7// Specify the test classes to run.
8// String array contains test class names.
9String[] tests = {"TestClass1", "TestClass2", "TestClass3"};
10// Add the test class names array to the deployment options.
11deployOptions.setRunTests(tests);
12
13// Call deploy() by passing the deployment options object as an argument. 
14AsyncResult asyncResult = metadatabinding.deploy(zipBytes,deployOptions);

特定のテストの実行に関する留意事項

  • 指定できるのはテストクラスのみで、個々のテストメソッドは指定できません。
  • コードカバー率の要件を満たす最小限のテストを含めるように、テストクラスを再構成することをお勧めします。テストクラスを再構成するとテストの実行時間が短縮され、結果的にリリース時間も短縮されます。
  • 対象組織のトリガを無効化するには、トリガを無効な状態でリリースします。ただし、そのトリガは以前に有効な状態でリリースされたものである必要があります。