我的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
文件之外的整个套件逻辑拖到一个单独的配置文件中(我相信您可能已经有了一个适用于您的环境的配置文件:test、prod,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有一个类似的名字,你猜是标记