mabl-cliノードパッケージを使用すると、JestなどのJavaScriptテストフレームワークでテストをローカルに実行できます。この記事では、希望するJavaScriptテストフレームワークで、createBrowserTestRunner
関数をプロジェクトにインポートしてブラウザーテストを実行する方法について説明します。
開始する前に
mabl CLIを初めて使用する場合は、CLIの概要のドキュメントを参照してください。
インストール
mabl-cli
をプロジェクトの別の開発依存関係としてインストールします。
npm install @mablhq/mabl-cli --save-dev
このインストールでは、グローバルにインストールされたCLIツールと同じ認証設定が使用されます。テストを実行する前に、認証セッションがアクティブであることを確認します。アクティブでない場合は、mabl auth login
を実行します。
テストの実行
ブラウザーテストを実行するには、createBrowserTestRunner
関数をテストファイルにインポートして、実行するテストスイートを定義します。
mabl-cliノードパッケージには、JavaScriptとTypeScriptの両方のサポートが含まれます。
以下は、1つのテストをヘッドレスモードで実行し、失敗がなかったことをアサートするJavaScriptの例です。この例をそれぞれのプロジェクトで使用するには、<TEST-ID>
を実行するテストのIDに置き換えます。
import {createBrowserTestRunner} from '@mablhq/mabl-cli';
describe('Run mabl tests locally', () => {
it('Run single test', async () => {
const mablTestRunner = await createBrowserTestRunner({
testId: '<TEST-ID>',
branchName: 'master',
headless: true,
});
const result = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
});
});
このコード例では、createBrowserTestRunner
関数に対して非同期な呼び出しを行い、MablTestRunner
オブジェクトを作成しています。createBrowserTestRunner
関数には、実行するテストを示すテスト実行設定オプションが含まれています。テストを実行して結果を返すために、このコード例では、MablTestRunner
インスタンスで.run()
を呼び出しています。
テスト実行設定
実行するテストを指定するには、次のいずれかのオプションが必要です: testId | runId | labelsInclude
createBrowserTestRunner
関数で利用可能なすべてのtestRunConfig
オプションを次の表に示します。
オプション | タイプ | 説明 |
---|---|---|
branchName |
<文字列> | テストを実行するmablブランチの名前 |
branchChangesOnly |
<ブール値> |
branchName オプションとともに使用します。指定したブランチにないテストを除外します。デフォルト値はfalseです。 |
credentialsId |
<文字列> | テストで使用するクレデンシャルのID |
environmentId |
<文字列> | テストを実行するmabl環境。適切な環境変数と最新の検索情報がテストの実行に確実に使用されるようにする場合に指定します。注: 環境を設定することで、デフォルトのURLがオーバーライドされることはありません。URLをオーバーライドするには、url オプションを使用します。 |
fromPlanId |
<文字列> | 特定のプランに関連付けられたテストを実行します。fromPlanId オプションを指定してテストを実行するのは、プラン実行ではありません。ステージ、ブラウザー設定、共有変数などの高度なプラン設定は適用されません。 |
headless |
<ブール値> | ブラウザーウィンドウを開かずに、バックグラウンドでテストを実行します。デフォルト値はfalseです。 |
labelsExclude |
<配列<文字列>> | スペース区切りのラベルのリストに一致するテストを除外します。 |
labelsInclude |
<配列<文字列>> | スペース区切りのラベルのリストに一致するテストを実行します。例: ['label1', 'label2']
|
testId |
<文字列> | 実行するテストのID |
runId |
<文字列> | 環境、クレデンシャル、URLなどの設定を取得するテスト実行のID。 |
url |
<文字列> | テストを実行するURL |
basicAuthCredentialsId |
<文字列> | テスト実行の基本認証で使用するクレデンシャルのID |
workspaceId |
<文字列> | テストを実行するワークスペースのID。このオプションは、複数のmablワークスペースに属している場合に使用します。 |
結果を返す
mablTestRunner
を定義した後、.run()
関数を呼び出してすべてのテストを実行し、テスト結果を返します。時間はすべて、UNIXエポックからのミリ秒単位の時間です。
戻り値: TestResults
-
numFailedTests
<数値> -
numPassedTests
<数値> -
numSkippedTests
<数値> -
numTotalTests
<数値> -
testResults
<配列<テスト結果>>-
status
<文字列> (passed | failed | skipped) -
errorMessage
<文字列> -
testName
<文字列> -
startTime
<数値> -
endTime
<数値>
-
-
startTime
<数値> -
endTime
<数値> -
totalTimeSeconds
<数値>- 合計テスト時間 (秒)
-
success
<ブール値>
TypeScriptのサポート
以下は、1つのテストをヘッドレスモードで実行し、失敗がなかったことをアサートするTypeScriptの例です。この例をそれぞれのプロジェクトで使用するには、<TEST-ID>
を実行するテストのIDに置き換えます。
import {
createBrowserTestRunner,
TestRunConfig,
TestResults,
} from '@mablhq/mabl-cli';
describe('mabl Execution Validation Tests', () => {
it('Run single test', async () => {
const testRunConfig: TestRunConfig = {
testId: '<TEST-ID>',
branchName: 'master',
headless: true,
};
const mablTestRunner = await createBrowserTestRunner(testRunConfig);
const result: TestResults = await mablTestRunner.run();
expect(result.numFailedTests).toEqual(0);
expect(result.success).toEqual(true);
});
});