Apex テストの実行
最低限必要なユーザー権限と設定
Apex テストを実行するユーザーは、組織内で次のユーザー権限を持っている必要があります。
- 「設定・定義の参照」
- 「API の有効化」
また、組織のユーザーインターフェースで [ストリーミング API を有効化] 設定が有効になっていることを確認します。この設定は、デフォルトで有効になっています。
詳細は、「ユーザー権限」および「ユーザーインターフェースの設定」を参照してください。
すべての Apex テストの実行と結果の表示
次のコマンドは、指定した組織のすべての Apex テストを非同期に実行します (デフォルトの動作)。
1sf apex run test --target-org myscratch実際のテスト結果が表示されるのではなく、apex get test コマンドとジョブ ID が出力され、このコマンドを実行すると全結果が表示されます。次に例を示します。
1sf apex get test --test-run-id 7078HzRMVV --target-org myscratchテストを同期実行する場合は、--synchronous フラグを使用します。このコマンドの場合、テスト結果は、すべてのテストが完了するまで表示されません。
1sf apex run test --synchronous特定の Apex テストの実行
--test-level を使用すると、テストのサブセットを実行できます。『Apex 開発者ガイド』の「deploy について」に、使用可能なテストレベル値のリストが記載されています。
1sf apex run test --test-level RunLocalTestsフラグを使用することで、実行するテストクラスやテストスイートをリストしたり、出力形式を指定したり、コードカバー率の結果を表示したりとさまざまな操作が可能です。たとえば、次のコマンドは、TestA および TestB テストクラスを実行し、結果を Test Anything Protocol (TAP) 形式で出力し、コードカバー率の結果を要求します。テストはデフォルト組織で実行されます。
1sf apex run test --class-names TestA --class-names TestB --result-format tap --code-coverage標準表記 Class.method を使用して特定のテストメソッドを実行するには、--tests フラグを使用します。管理パッケージをテストする場合は、namespace.Class.method を使用します。メソッドなしでテストクラスを指定すると、コマンドはそのクラス内のすべてのメソッドを実行します。次の例は、TestA クラスの 2 つのメソッドと TestB クラスのすべてのメソッドを実行する方法を示します。
1sf apex run test --tests TestA.excitingMethod --tests TestA.boringMethod --tests TestB次は、同じ例ですが名前空間が指定されています。
1sf apex run test --tests ns.TestA.excitingMethod --tests ns.TestA.boringMethod --tests ns.TestBapex run test には --tests または --class-names のどちらかを指定できますが、両方は指定できません。