Apex テストの実行
最低限必要なユーザ権限と設定
Apex テストを実行するユーザは、組織内で次のユーザ権限を持っている必要があります。
- 「設定・定義の参照」
- 「API の有効化」
また、組織のユーザインターフェースで [ストリーミング API を有効化] 設定が有効になっていることを確認します。この設定は、デフォルトで有効になっています。
詳細は、「ユーザ権限」および「ユーザインターフェースの設定」を参照してください。
すべての Apex テストの実行
次のコマンドは、スクラッチ組織のすべての Apex テストを非同期に実行します。実際のテスト結果が表示されるのではなく、force:apex:test:report コマンドが出力され、このコマンドを実行すると全結果が表示されます。
特定の Apex テストの実行
--testlevel を使用すると、テストのサブセットを実行できます。『Apex 開発者ガイド』の「deploy について」に、使用可能なテストレベル値のリストが記載されています。
テストを同期実行する場合は、--synchronous パラメータを使用します。このコマンドでは、テスト結果は、すべてのテストが完了するまで表示されません。
パラメータを使用すると、実行するテストクラスやテストスイートをリストしたり、出力形式を指定したり、コードカバー率の結果を表示したり、その他さまざまなことができます。たとえば、次のコマンドは、TestA および TestB テストクラスを実行し、結果を Test Anything Protocol (TAP) 形式で出力し、コードカバー率の結果を要求します。
標準表記 Class.method を使用して特定のテストメソッドを実行するには、--tests パラメータを使用します。管理パッケージをテストする場合は、namespace.Class.method を使用します。メソッドなしでテストクラスを指定すると、コマンドはそのクラス内のすべてのメソッドを実行します。次の例は、TestA クラスの 2 つのメソッドと TestB クラスのすべてのメソッドを実行する方法を示します。
次は、同じ例ですが名前空間が指定されています。
force:apex:test:run には --tests または --classnames のどちらかを指定できますが、両方は指定できません。
テスト結果の表示
force:apex:test:report コマンドを実行すると、結果が表示されます。結果には、個別のテストの結果、各テストの実行にかかった時間、全体的な合格と失敗の割合が含まれます。