再実行サービス
wdio-rerun-serviceはサードパーティのパッケージです。詳細についてはGitHub | npmをご覧ください
このサービスはWebdriverIOテストフレームワーク内で実行される失敗したMochaやJasmineのテスト、およびCucumberシナリオを追跡します。失敗または不安定なテストやシナリオを再実行することができます。
注意: WebdriverIOバージョン5.x
と6.x
を実行しているCucumberフレームワークユーザーは、バージョン1.6.x
を使用してください。最新のメジャーバージョン7.x
を使用している場合は、このサービスの最新の1.7.x
バージョンを使用してください。
再実行 vs. リトライ
WebdriverIOに組み込まれているCucumberとMocha/Jasmineのretry
ロジックは、CucumberとMocha/Jasmineの不安定なステップを処理するのに役立ちます。各フレームワークでのリトライには注意点があります:
- Cucumber: テストの途中でいくつかのステップが再試行できない可能性を考慮していません。ステップを2回実行すると、残りのシナリオが壊れたり、テストコンテキストでは不可能かもしれません。
- Mocha/Jasmine:
retry
ロジックは個 々のテストに適用できますが、これはリアルタイムで行われ、一時的な問題やネットワーク接続の問題を考慮していない可能性があります。
re-run
の主な特徴:
- 単一のステップだけでなく、Cucumberシナリオ全体を再実行します
- メインのテスト実行完了後に仕様ファイル全体を再実行できるようにします
- ローカルでコピーして実行することができます(
retry
はできません) retry
メソッドと併用することも可能です- 不安定または問題のあるテストに
retry
ロジックを適用するためのコード変更は必要ありません
利用可能なオプションを評価する時間を取ることをお勧めします。最も実用的で行動可能なテスト結果を提供するには、ハイブリッドソリューションが最適かもしれません。
インストール
最も簡単な方法は、package.json
のdevDependencies
にwdio-rerun-service
を追加することです。
{
"devDependencies": {
"wdio-rerun-service": "^1.6.2"
}
}
npm
を使ってインストールすることができます:
npm install wdio-rerun-service
パッケージのインストールが完了したら、wdio.conf.js
のservices
配列に追加します:
// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [RerunService, {
// ...
}]
};
WebdriverIO
のインストール方法についてはこちらをご覧ください。
設定
以下のオプションを wdio.conf.js ファイルに追加することができます。サービスのオプションを定義するには、以下のようにサービスをservices
リストに追加する必要があります:
// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Re-run service options here...
}]
],
// ...
};
rerunDataDir
実行中にすべての再実行JSONデータが保存されるディレクトリ。
タイプ: String
デフォルト: ./results/rerun
例:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunDataDir: './custom-rerun-directory'
}]
],
// ...
}
rerunScriptPath
再実行Bashスクリプトを書き込むパス。
タイプ: String
デフォルト: ./rerun.sh
例:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunScriptPath: './custom-path-for-rerun.sh'
}]
],
// ...
}
ignoredTags
(Cucumberのみ) 除外するCucumberタグのセット。シナリオにタグが含まれている場合、再実行サービスは分析をスキップします。
タイプ: Array
デフォルト: []
例:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
ignoredTags: ['@known_bug']
}]
],
// ...
}
commandPrefix
生成される再実行コマンドに追加されるプレフィックス。
タイプ: String
デフォルト: ''
例:
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
commandPrefix: "VARIABLE=true"
}]
],
// ...
}