Sun*_*oot 3 jasmine selenium-webdriver webdriver-io
我有一堆Webdriver.io/Selenium测试,我正在使用jasmine测试框架编写我的测试,所以我有一个wdio.conf.js文件,我已配置为使用jasmine,根据这些说明
问题是我正在测试一个基于广告/营销的高度动态/可配置的Web应用程序,并要求我传递大量配置信息,以便测试知道要测试的内容.例如,在命令行,我想运行如下:
> wdio --campaignId=123 --productId=456
Run Code Online (Sandbox Code Playgroud)
我可以修改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
};
}
};
Run Code Online (Sandbox Code Playgroud)
...但我不知道如何将这些传递给我的茉莉花测试.我试过从process.argv读取但是缺少campaignId和productId args,例如
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...
Run Code Online (Sandbox Code Playgroud)
如何将自定义参数/参数传递给我的茉莉花测试?我可以将它们写入onPrepare中的文件,然后在茉莉花测试中读取该文件,这看起来有点hacky.
小智 6
我建议使用环境变量来处理此行为.
例如,您可以运行您的测试VARIABLE=1 wdio wdio.config.js,然后在测试中您可以轻松访问它process.env.VARIABLE
如果你正在使用gulp,grunt等构建工具,那么你可以通过标准方式(gulp e2e --variable=1)传递命令行,然后process.env.VARIABLE在构建工具任务中设置.
| 归档时间: |
|
| 查看次数: |
3648 次 |
| 最近记录: |