リリースでのテストのサブセットの実行
リリースの Apex コ���ポーネントのコードカバー率が 75% 未満の場合は、リリースに失敗します。指定したテストのいずれかに失敗した場合も、リリースに失敗します。最初に Sandbox でリリースをテストし、指定したテストが各コンポーネントを十分にカバーすることを確認することをお勧めします。組織の全体的なコードカバー率が 75% 以上でも、Apex コンポーネントの個々のカバー率が 75% 未満のことがあります。コードカバー率の要件を満たしていない場合は、他のテストを記述してリリースに含めます。
テストのサブセットを実行するには、testLevel="RunSpecifiedTests" パラメータをリリースターゲットに追加します。sf:deploy 要素内の <runTest> </runTest> 子要素に、リリースターゲットに実行する各テストクラスを指定します。<runTest> </runTest> タグ内にテストクラス名を追加します。runTest タグはテストクラスに 1 つずつ必要なだけ追加します。
このリリースターゲットの例は、3 つのテストクラスを示します。このパッケージのリリース時に、Salesforce がこれらのテストクラスを実行します。
1<target name="deployCode">
2 <sf:deploy username="${sf.username}" password="${sf.password}"
3 sessionId="${sf.sessionId}" serverurl="${sf.serverurl}"
4 deployroot="codepkg" testLevel="RunSpecifiedTests">
5 <runTest>TestClass1</runTest>
6 <runTest>TestClass2</runTest>
7 <runTest>TestClass3</runTest>
8 </sf:deploy>
9</target>テストクラス名には、名前空間プレフィックスを含めることができます。組織に名前空間が定義されている場合、またはテストクラスが管理パッケージに属する場合に名前空間プレフィックスを追加します。たとえば、名前空間が MyNamespace の場合は、テストクラスを MyNamespace.TestClass1 と指定します。
ターゲットで実行するテストクラスを指定しない場合は、本番組織へのリリース時にデフォルトのリリース動作が適用されます。デフォルトでは、インストール済みの管理パッケージから発生したテストを除き、リリース時に組織のすべてのテストが実行されます。デフォルトのコードカバー率要件も適用されます。この要件では、すべてのクラスとトリガでの全体の最小カバー率が 75% です。また、トリガは 0% のカバー率は許可されません。
特定のテストの実行に関する留意事項
- 指定できるのはテストクラスのみで、個々のテストメソッドは指定できません。
- コードカバー率の要件を満たす最小限のテストを含めるように、テストクラスを再構成することをお勧めします。テストクラスを再構成するとテストの実行時間が短縮され、結果的にリリース時間も短縮されます。
- ターゲット組織のトリガを無効化するには、トリガを無効な状態でリリースします。ただし、そのトリガは以前に有効な状態でリリースされたものである必要があります。