【发布时间】:2018-09-04 07:24:34
【问题描述】:
当我并行运行功能时(通过在wdio.conf.js 中将maxInstances 设置为2)它们每隔一段时间就会失败,但是当maxInstances 是1 时,一切正常。似乎这两个测试在并行运行时会以某种方式使用彼此的会话。知道它是什么吗?
一件重要的事情。 Webdriver.io 无法进行断言(因为它们是在不同的会话中以某种方式进行的),因此堆栈跟踪对于失败的断言非常简单。
wdio.conf.js
exports.config = {
specs: [
'./features/*.feature'
],
maxInstances: 2,
services: ['selenium-standalone'],
capabilities: [
{ browserName: 'chrome' }
],
baseUrl: 'http://localhost:4000',
framework: 'cucumber',
reporters: ['spec'],
cucumberOpts: {
require: ['./features/steps.js'],
strict: true
}
};
login.feature
Feature: Login page
Scenario: Click on the search link redirects the user
Given the user is on the login route
When the user clicks on the search link
Then he sees the search route
search.feature
Feature: Search page
Scenario: Click on the login link redirects the user
Given the user is on the search route
When the user clicks on the login link
Then he sees the login route
steps.js
const { Given, When, Then, Before, After } = require('cucumber');
const { assert } = require('chai');
Given(/^the user is on the login route$/, () => browser.url('/login'));
When(/^the user clicks on the search link$/, () => browser.click('.search-link'));
Then(/^he sees the search route$/, () => assert.equal(browser.isExisting('.search-route'), true));
Given(/^the user is on the search route$/, () => browser.url('/search'));
When(/^the user clicks on the login link$/, () => browser.click('.login-link'));
Then(/^he sees the login route$/, () => assert.equal(browser.isExisting('.login-route'), true));
【问题讨论】:
标签: cucumber webdriver-io