Можно ли добавить (а не перезаписать) cucumberOpt.tagExpressions в командной строке? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть тесты на селен, которые проводятся с использованием огурца и wdio. Мой файл wdio.conf.js выглядит так:

cucumberOpts: {
    tagExpression: 'not @ignore',
},

У меня есть тесты, которые я пометил

@cats
Scenario: As a user I want to google cats
Given I have google open
When I type in 'cats'
And then I see pictures of cats

@dogs
Scenario: As a user I want to google dogs
Given I have google open
When I type in 'dogs'
And then I see pictures of dogs

@dogs @ignore
Scenario: As a user I want to google fierce dogs
Given I have google open
When I type in 'fierce dogs'
And then I see pictures of fierce dogs

Если я хочу выполнить все тесты собак, которые не были проигнорированы, я могу запустить:

 ./node_modules/.bin/wdio wdio.conf.js --cucumberOpts.tagExpression='@dogs and not @ignore'

То, что я хотел бы сделать, это просто запустить

./node_modules/.bin/wdio wdio.conf.js --cucumberOpts.tagExpression='@dogs'

(или аналогичный) из командной строки, чтобы он выбрал 'not @ignore' из файла wdio.conf.js.

Возможно ли это сделать?

1 Ответ

0 голосов
/ 29 августа 2018

Это определенно возможно; Вы должны написать код для этого, хотя. Предполагая, что у вас установлено yargs , вы можете сделать что-то вроде:

const argv = require('yargs').argv;

let tags = '(not @pending)';

if (argv.tags) {
  tags += ` and (${argv.tags})`
}

// ...rest of configs

cucumberOpts: {
    tagExpression: tags
},

Тогда вы бы запустили его с: ./node_modules/.bin/wdio wdio.conf.js --tags='@dogs'

Обратите внимание, что я не тестировал этот конкретный код, поэтому, надеюсь, нет синтаксических ошибок.

...