再実行サービス
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"
}]
],
// ...
}