如何在单个浏览器会话中运行所有webdriver.io规格文件?

时间:2018-06-24 16:35:40

标签: session webdriver-io

我正在使用wdio运行测试。我将maxInstances减小为1,但是wdio日志记录表明它在每个spec文件之前创建了一个新会话。我该如何在单个浏览器会话中运行所有webdriver.io规格文件?谢谢!

wdio.conf.js是:

exports.config = {
  specs: ['./test/specs/**/*.js'],
  maxInstances: 1,
  capabilities: [{
    maxInstances: 1,
    browserName: 'chrome',
  }],
  sync: true,
  logLevel: 'verbose',
  coloredLogs: true,
  screenshotPath: './errorShots/',
  baseUrl: process.env.ROOT_URL,
  waitforTimeout: 10000,
  connectionRetryTimeout: 90000,
  connectionRetryCount: 3,
  services: ['chromedriver'],
  framework: 'mocha',
  reporters: ['dot', 'spec', 'allure'],
  mochaOpts: {
    ui: 'bdd',
    timeout: 99999999
  },
}

2 个答案:

答案 0 :(得分:0)

WebdriverIO将在不同的会话中运行每个测试文件。要在同一会话中全部运行它们,您需要将所有测试放在同一文件中。

如果发现自己需要在同一会话中运行所有测试,则也许应该重新测试...如果需要进行通用设置(例如记录日志),则可以使用WebdriverIO's "before" hook进入网站。

答案 1 :(得分:0)

尝试此替代方法。它实际上适用于webdriverio v4

  • 在一个文件中列出所有规格。您可以利用正在使用的IDE的自动完成功能,例如

    specs.js

    require('./test/specs/test1');
    require('./test/specs/test2');
    // etc.
    require('./test/specs/testN');
    
  • 在您的wdio.conf.js文件中,将上述spec.js文件列出为唯一的规范,即

    wdio.conf.js

    exports.config = {
        specs: ['./test/specs/specs.js'],
        // etc.
    }