JavaScriptテストフレームワーク

mabl-cliノードパッケージを使用すると、好みのテストフレームワークでエンドツーエンドのテストをローカルに実行できます。mabl-cliパッケージは、インポート可能なオブジェクトとしてMablTestRunnerを公開しており、これを使用することで、JestなどのJavaScriptテストフレームワーク内からmablテストを初期化して実行できます。
mabl CLIを初めて使用する場合は、「CLIの概要」で追加情報を参照してください。

📘

早期アクセスプログラム

これは早期アクセス機能であり、現在、mabl早期アクセスプログラムの下で一部のお客様に提供されているmabl Runnerと一緒に使用して評価することをお勧めします。アクセスのリクエスト

インストール

mabl-cliを、プロジェクトの別の開発依存関係としてインストールします。

npm install @mablhq/mabl-cli --save-dev

このインストールでは、グローバルにインストールされたCLIツールと同じ認証設定が使用されます。テストを実行する前に、認証がアクティブであるかどうかを確認します。アクティブでない場合は、mabl auth loginを実行します。

テスト内での使用

mabl-cliパッケージからcreateMablTestRunner関数をインポートして、MablTestRunnerを作成するために使用できます。テストを実行するには、MablTestRunnerで.run() を呼び出します。以下は、1つのテストをヘッドレスモードで実行し、失敗がなかったことをアサートするJavaScriptテストの例です。

import {createMablTestRunner} from '@mablhq/mabl-cli';
 
jest.setTimeout(30000);
 
describe('Run mabl tests locally', () => {
 it('Run single test', async () => {
   const mablTestRunner = await createMablTestRunner({
     testId: 'fb60BEqZa3kXZy1Gj0hAsA-j',
     branchName: 'master',
     headless: true,
   });
   const result = await mablTestRunner.run();
   expect(result.numFailedTests).toEqual(0);
   expect(result.success).toEqual(true);
 });
});

📘

長時間のテスト実行に対応するには、デフォルトのJestタイムアウトを増やす必要があります。そのための1つの方法は、グローバルにタイムアウト値を指定することです。
jest.setTimeout(30000);

createMablTestRunner([TestRunConfig]) <​Promise>
指定したテスト実行の設定でmablTestRunnerを作成する非同期関数。テストを実行するには、次のオプションのいずれかを指定する必要があります (testId | runId | labelsInclude)。その他はすべてオプションです。

  • TestRunConfig:
    テスト実行の設定に必要なテストIDを取得する方法については、以下のmablヘルプドキュメントを参照するか、mabl-cliを使用してテストIDのクエリを実行してください。
  • branchName
    • テストを実行するmablブランチの名前。
  • branchChangesOnly
    • 指定されたmablブランチにあるテストのみを実行します。
  • credentialsId
    • テストで使用する資格情報ID。
  • environmentId
    • テストで使用する環境ID。
  • fromPlanId
    * テストのリストを取得するプランのID。指定されていない場合は、環境IDと資格情報IDも使用されます。注:
    これはプラン実行ではないため、高度なプラン設定 (ステージや共有変数など) は適用されません。
  • headless
    • ヘッドレスモードでテストを実行するかどうかを指定します。
  • labelsExclude <Array<​string>>
    • ラベルを使用して実行対象テストを指定するときに、テストを除外するラベルの配列。
  • labelsInclude <Array<​string>>
    • テストを照会し、順次実行するためのラベルの配列。
  • testId
    • 実行するテストのID。
  • runId
    • ローカル実行設定のためにテスト情報を取得するテスト実行のID。そのテスト実行から、環境、資格情報、URLなどを取得します。
  • url
    • テストを実行するURL
  • workspaceId
    * テストを実行するワークスペースのID。プライマリ設定としてラベルを使用する場合にのみ必要です。
    MablTestRunnerを返します。run() 関数を呼び出して、テストを実行します。

MablTestRunner.run() <​Promise>
すべてのテストを実行し、テスト結果を返す非同期関数。

時間はすべて、UNIXエポックからのミリ秒単位の時間です。

  • 戻り値: TestResults
    • numFailedTests
    • numPassedTests
    • numSkippedTests
    • numTotalTests
    • testResults <配列<テスト結果>>
      • status (passed | failed | skipped)
      • errorMessage
      • testName
      • startTime
      • endTime
    • startTime
    • endTime
    • totalTimeSeconds
      • 合計テスト時間 (秒)
    • success

TypeScriptのサポート

mabl-cliには、TypeScriptで使用するためのタイプが含まれています。上記のタイプは、TypeScriptでインポートすることで利用できるはずです。例については、以下を参照してください。

import {
 createMablTestRunner,
 TestRunConfig,
 TestResults,
} from '@mablhq/mabl-cli';
 
jest.setTimeout(30000);
 
describe('mabl Execution Validation Tests', () => {
 it('Run single test', async () => {
   const testRunConfig: TestRunConfig = {
     testId: 'fb60BEqZa3kXZy1Gj0hAsA-j',
     branchName: 'master',
     headless: true,
   };
   const mablTestRunner = await createMablTestRunner(testRunConfig);
   const result: TestResults = await mablTestRunner.run();
   expect(result.numFailedTests).toEqual(0);
   expect(result.success).toEqual(true);
 });
});