Webdriver.io测试运行程序-将套件排除在特定功能之外



我的webdriver.io测试运行程序被组织成套件,我想从特定功能中排除一个套件。

例如,我有一个名为suite1:的套件

//
suites: {
suite1: [
'./test/spec/*.js',
],
},
//

我想从Safari功能中排除这个套件:

//
{
'tunnelIdentifier' : sltunnel,
'browserName': 'safari',
'version': '10',
'platform': 'OS X 10.12',
'screenResolution': '1600x1200',
'exclude':  [
suite1,
],
},
//

有办法做到这一点吗?

当然有多种方法可以做到这一点,但归根结底,一切都取决于您。

您可以将wdio.conf.js文件之外的整个套件逻辑拖到一个单独的配置文件中(我相信您可能已经有了一个适用于您的环境的配置文件:testprod,w/e),然后导入(通过require导入wdio.conf.js文件):

假设您有suites.conf.js文件:

module.exports.suites = {
// 1 => run the suite
// 0 => don't run it
"chrome": {
"0": [
"<yourSuiteName-001>.js"
"<yourSuiteName-003>.js"
"<yourSuiteName-005>.js"
],
"1": [
"<yourSuiteName-002>.js"
"<yourSuiteName-004>.js"
]
},
"safari" : {
"0": [
"<yourSuiteName-002>.js"
"<yourSuiteName-004>.js"
"<yourSuiteName-005>.js"
],
"1": [
"<yourSuiteName-001>.js"
"<yourSuiteName-003>.js"
]
}
// <etc>
}

然后将其导入到wdio.conf.js文件(var suites = require(./<pathToSuitesConfig>/suites.conf.js);)中,使用forEach在所有套件中循环,并基于browserName创建一个缓冲区,在其中存储符合条件的可运行套件,然后将它们添加到配置文件中。此逻辑将进入wdio.conf.js标题部分,您可以通过结果更新可导出的config

我只是在5分钟内想到了这一点,所以我相信有多种更清洁的方法可以实现这一点。


或者,您可以查看其他易于插入WebdriverIO并带有标记的测试运行程序:

  • Cucumber有一个很棒的标记机制(由于Gherkin语法)
  • Mocha有一个类似的名字,你猜是标记

最新更新