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