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

Newer Version Available

This content describes an older version of this product. View Latest

単体テストメソッドの実行

単体テストは次を対象に実行できます。
  • 特定のクラス
  • クラスのサブセット
  • 組織内のすべての単体テスト

テストを実行するには、次のいずれかを使用します。

Salesforce ユーザインターフェース (開発者コンソールなど) から開始するすべての Apex テストを非同期で並列実行します。Apex テストクラスは、実行のための Apex ジョブキューに置かれます。24 時間あたりに実行できるテストクラスの最大数は、500 または組織のテストクラス数 × 10 の大きい方です。Sandbox 組織および Developer Edition 組織ではこの制限が緩和されており、500 または組織のテストクラス数 × 20 の大きい方です

Salesforce ユーザインターフェースによるテストの実行

Apex テスト実行ページで単体テストを実行できます。このページで開始したテストは非同期的に実行するため、テストクラスの実行が完了するのを待つ必要はありません。Apex テスト実行ページは、テストが完了すると、テストの状況を更新して結果を表示します。
Apex テスト実行ページ
Apex テスト実行ページを使用する手順は、次のとおりです。
  1. [設定] で、[開発] | [Apex テスト実行] をクリックします。
  2. [テストを選択...] をクリックします。

    管理パッケージからインストールされた Apex クラスがある場合、最初に [Apex クラス] ページの [すべてのクラスをコンパイル] をクリックしてこれらのクラスをコンパイルして、リストに表示されるようにする必要があります。「Apex クラスの管理」を参照してください。

    メモ

  3. 実行するテストを選択します。テストのリストには、テストメソッドが含まれるクラスのみが表示されます。
    • インストール済み管理パッケージからテストを選択するには、ドロップダウンリストから対応する名前空間を選択します。リストには、選択した名前空間の管理パッケージのクラスのみ表示されます。
    • 組織にローカルに存在するテストを選択するには、ドロップダウンリストから [私の名前空間] を選択します。管理パッケージからインストールされたクラスを除くローカルクラスのみリストに表示されます。
    • テストを選択するには、ドロップダウンリストから [すべての名前空間] を選択します。管理パッケージからインストールされたかどうかに関わらず、組織内のすべてのクラスが表示されます。

    テストが現在実行中のクラスは、リストに表示されません。

    メモ

  4. [実行] をクリックします

Apex テスト実行ページを使用してテストを実行した後、開発者コンソールでコードカバー率の詳細を確認できます。

[設定] から、[開発] | [Apex テスト実行] | [テスト履歴を表示] をクリックし、自分で実行したテストだけでなく、組織のすべてのテスト結果を表示します。テスト結果は、クリアされない限り実行終了後 30 日間残ります。

Force.com IDE を使用したテストの実行

また、Force.com IDE を使用してテストを実行することもできます (https://developer.salesforce.com/page/Apex_Toolkit_for_Eclipse を参照)。

Force.com 開発者コンソールを使用したテストの実行

開発者コンソールを使用すると、特定のテストクラスでテストを実行するテスト実行や、すべてのテストを実行するテスト実行を作成できます。開発者コンソールではバックグラウンドで非同期にテストを実行することで、テスト実行中に開発者コンソールの他の領域で作業することができます。テスト実行が完了したら、開発者コンソールでテスト結果を確認することができます。また、テストでカバーされたクラスのコードカバー率全体を確認することができます。

あなたの名前 | [開発者コンソール] から Salesforce アプリケーションで開発者コンソールを開くことができます。詳細は、Salesforce オンラインヘルプのドキュメント「開発者コンソール」を確認してください。

API を使用したテストの実行

runTests() コールを SOAP API から使用して、テストを同期して実行できます。
1RunTestsResult[] runTests(RunTestsRequest ri)
このコールでは、すべてのクラスのすべてのテスト、特定の名前空間のすべてのテスト、または特定の名前空間のクラスのサブセットにあるすべてのテストを、RunTestsRequest オブジェクトに指定されているとおりに実行できます。次の値が返されます。
  • 実行されたテストの合計数
  • コードカバー率の統計 (下記で説明)
  • 失敗したテストごとのエラー情報
  • 成功したテストごとの情報
  • テストの実行に要した時間

runTests() の詳細については、WSDL を参照してください。これは、https://your_salesforce_server/services/wsdl/apex にあります。 your_salesforce_server は、na1.salesforce.com など、組織が置かれているサーバに相当します。

Salesforce 本番組織の管理者は Salesforce ユーザインターフェースを使用して Apex コードに変更を加えることはできませんが、既存項目への固有の制約の追加など、何らかの変更を行った後に、既存の単体テストが確実に実行されて完了されるように、runTests() を使用することは重要です。Salesforce 本番組織で Apex コードを変更するには compileAndTest SOAP API コールを使用する必要があります。詳細は、Apex のリリースを参照してください。

runTests() の詳細は、ApexSOAP API および SOAP ヘッダーを参照してください。