除外されたスペックに対するセッションの開始を回避
·2 分で読めます
タグ、grep、その他の手法でスペックをフィルタリングするのは一般的なアプローチですが、以前はここで問題がありました。それは、特にモバイルテストの場合、すべてのスペックファイルに対して新しいセッションが作成されるため、時間がかかるということです。
セッションが開始される前にスペックファイルをフィルタリングできる機能を追加しました。この機能は、Cucumberフレームワークではデフォルトで有効になっており、MochaおよびJasmineフレームワークではデフォルトで無効になっており、互換性を損なわないようにしています。この機能を使用するには、wdio.conf.js
で機能フラグを有効にする必要があり、browser.addCommand()
などのすべてのbrowser
関数呼び出しはルートスコープから移動する必要があります。以前と同様に、envフラグ、設定、または機能を使用できます。
以下は、この機能を使用したいMochaおよびJasmineユーザーのみに必要なものです。
wdio.conf.js
のフラグで機能を有効にします。
// wdio.conf.js
exports.config
// ...
featureFlags: {
specFiltering: true
},
}
- カスタムコマンドの宣言がある場合は、
before
フックに移動します。例:
// wdio.conf.js
exports.config
// ...
mochaOpts: {
/**
* all the files that interacts with `browser` object in a root scope
* have to be required in `before` hook if `specFiltering` feature is enabled.
*/
require: [
"@babel/register", // if you have any transpilers leave them as is
"./src/wdio/commands" // remove from here
]
},
before (capabilities, specs) {
require("./src/wdio/commands") // add here
},
}
- カスタムコマンドの宣言をルートスコープからスイートレベルに移動するか(または別のファイルに移動して
before
フックでrequireします。2.1を参照)、そのようなものがあった場合、例:
// my.spec.js
/**
* move `browser.addCommand()` as well as other browser functions calls
* from root scope to suite level (or another file)
*/
browser.addCommand('myCommand', () => {}) // remove!
// it's still possible to use config, capabilities or env flags as before.
describe('my suite in ' + browser.capabilities.browserName, () => {
// add it to suite/test scope
browser.addCommand('myCommand', () => {})
it('my test', () => {
browser.myCommand()
})
})
ご質問には喜んでお答えし、フィードバックをお待ちしております。
この機能はv6ですべてのテストフレームワークで有効になるため、事前に準備を開始することをお勧めします。
ありがとうございます!