Bamboo
WebdriverIOは、BambooなどのCIシステムと緊密に統合されています。JUnitまたはAllureレポーターを使用すると、テストのデバッグとテスト結果の追跡を容易に行うことができます。統合は非常に簡単です。
- JUnitテストレポーターをインストールします:
$ npm install @wdio/junit-reporter --save-dev
- Bambooが検出できる場所にJUnit結果を保存するように設定を更新し(そして`junit`レポーターを指定します)、
// wdio.conf.js
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/'
}]
],
// ...
}
注記: *テスト結果をルートフォルダ以外に別のフォルダに保存することは、常に良い標準です。*
// wdio.conf.js - For tests running in parallel
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/',
outputFileFormat: function (options) {
return `results-${options.cid}.xml`;
}
}]
],
// ...
}
レポートはすべてのフレームワークで同様であり、Mocha、Jasmine、Cucumberのいずれかを使用できます。
この時点で、テストが記述済みで、結果が`./testresults/`フォルダに生成され、Bambooが稼働していると仮定します。
Bambooへのテストの統合
-
Bambooプロジェクトを開きます
新しいプランを作成し、リポジトリをリンクします(常にリポジトリの最新バージョンを指していることを確認してください)、そしてステージを作成します
デフォルトのステージとジョブを使用します。必要に応じて独自のステージとジョブを作成できます。
-
テストジョブを開き、Bambooでテストを実行するためのタスクを作成します。
**タスク1:**ソースコードチェックアウト
**タスク2:**テストを実行します
npm i && npm run test
。*スクリプト*タスクと*シェルインタプリタ*を使用して上記のコマンドを実行できます(これにより、テスト結果が生成され、`./testresults/`フォルダに保存されます)。**タスク3:**保存されたテスト結果を解析するための*JUnitパーサー*タスクを追加します。ここでテスト結果ディレクトリを指定してください(Antスタイルのパターンも使用できます)。
注記: *結果パーサータスクを*最終*セクションに配置して、テストタスクが失敗した場合でも常に実行されるようにしてください。*
**タスク4:**(オプション) テスト結果が古いファイルと混ざらないようにするために、Bambooへの正常な解析後に`./testresults/`フォルダを削除するタスクを作成できます。`rm -f ./testresults/*.xml`で結果を削除する、または`rm -r testresults`でフォルダ全体を削除するシェルスクリプトを追加できます。
上記の作業が完了したら、プランを有効にして実行してください。最終出力は次のようになります。
テスト成功
テスト失敗
失敗と修正
できました!これで、WebdriverIOテストをBambooに正常に統合しました。