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 - 並列でテストを実行する場合
module.exports = {
// ...
reporters: [
'dot',
['junit', {
outputDir: './testresults/',
outputFileFormat: function (options) {
return `results-${options.cid}.xml`;
}
}]
],
// ...
}
レポートはすべてのフレームワークで同様になり、Mocha、JasmineまたはCucumberのいずれかを使用できます。
この時点で、テストが作成され、結果が./testresults/
フォルダに生成され、Bambooが稼働していると思います。
BambooにテストをIntegrateする
-
Bambooプロジェクトを開く
新しいプランを作成し、リポジトリをリンクして(常にリポジトリの最新バージョンを指すようにしてください )、ステージを作成します
私はデフォルトのステージとジョブで進めます。あなたの場合は、独自のステージとジョブを作成できます
-
テストジョブを開き、Bambooでテストを実行するタスクを作成します
タスク1: ソースコードのチェックアウト
タスク2: テストを実行
npm i && npm run test
。ScriptタスクとShell Interpreterを使用して上記のコマンドを実行できます(これによりテスト結果が生成され、./testresults/
フォルダに保存されます)タスク3: 保存したテスト結果を解析するためにjUnit Parserタスクを追加します。ここでテスト結果ディレクトリを指定してください(Antスタイルのパターンも使用できます)
注意: テストタスクが失敗した場合でも常に実行されるように、結果パーサータスクをFinalセクションに配置してください
タスク4: (オプション)テスト結果が古いファイルと混ざらないようにするために、Bambooへの解析が成功した後に
./testresults/
フォルダを削除するタスクを作成できます。rm -f ./testresults/*.xml
のようなシェルスクリプトを追加して結果を削除するか、rm -r testresults
でフォルダ全体を削除できます
上記のロケットサイエンスが完了したら、プランを有効にして実行してください。最終的な出力は次のようになります:
成功したテスト
失敗したテスト
失敗と修正
やった!以上です。WebdriverIOテストをBambooに正常に統合しました。