我有一堆Webdriver.io/Selenium測試,並且我使用茉莉花測試框架編寫我的測試,所以我有一個wdio.conf.js文件,我已配置使用茉莉花,按these instructionsWebdriverIO - 如何將參數發送到Jasmine測試?
問題是我正在測試一個高度動態/可配置的基於廣告/營銷的Web應用程序,並且要求我傳遞一些配置信息,以便測試知道要測試什麼。例如在命令行中,我想運行類似:
> wdio --campaignId=123 --productId=456
我可以修改wdio.conf.js文件中的「onPrepare」功能/事件拿起這些paramters像這樣:
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...
如何將自定義params /參數傳遞給我的茉莉花測試?我可以將它們寫入到onPrepare中的文件中,然後在茉莉花測試中讀取該文件,這看起來有點冒險。