Webdriver.io /Selenium テストがたくさんあり、ジャスミン テスト フレームワークを使用してテストを記述しているため、これらの指示に従って、ジャスミンを使用するように構成した wdio.conf.js ファイルがあります。
問題は、非常に動的/構成可能な広告/マーケティング ベースの Web アプリをテストしていて、テスト対象をテストするために大量の構成情報を渡す必要があることです。たとえば、コマンドラインで次のようなものを実行したいと思います:
> wdio --campaignId=123 --productId=456
wdio.conf.js ファイルの「onPrepare」関数/イベントを変更して、次のようにこれらのパラメーターを取得できます。
exports.config = {
....other options (snip)...
framework: 'jasmine',
jasmineNodeOpts: {
defaultTimeoutInterval: 9999999,
expectationResultHandler: function (passed, assertion) { }
},
onPrepare: function (config) {
var campaignId = parseInt(process.argv[2]
.replace('--campaignId=', ''));
var productId = parseInt(process.argv[3]
.replace('--productId=', ''));
config.params = {
campaignId: campaignId,
productId: productId
};
}
};
...しかし、これらをジャスミン テストに渡す方法がわかりません。process.argv から読み取ろうとしましたが、campaignId および productId 引数がありません。
describe('Campaign Tests', function () {
beforeEach(function(done) {
browser
.session(function(err, client) {
var campaignId = parseInt((process.argv[2] || '')
.replace('--campaignId=', ''));
var productId = parseInt((process.argv[3] || '')
.replace('--productId=', ''));
// campaignId and productId are both NaN/undefined
});
});
it('should test something...snip...
カスタム パラメータ/引数をジャスミン テストに渡すにはどうすればよいですか? それらを onPrepare のファイルに書き込んでから、ジャスミン テストでそのファイルを読み取ることができますが、これは少しハックに思えます。