Webdriver.io测试运行器 - 从特定功能中排除套件

时间:2017-10-20 18:51:11

标签: selenium selenium-webdriver webdriver webdriver-io saucelabs

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

例如,我有一个名为// suites: { suite1: [ './test/spec/*.js', ], }, // 的套件:

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

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

{{1}}

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

当然有多种方法可以做到这一点,但在一天结束时,一切都取决于你。

您可以将整个套件逻辑拖到wdio.conf.js文件之外的单独配置文件中(我相信您的环境可能已有一个:测试 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有一个很棒的 tagging 机制(由于Gherkin语法);
  • Mocha有类似名称,您猜对了 tagging