Как я могу использовать файлы wdio.conf.js для указания папок с тестами, какие тесты e2e запускать?

1

У меня есть приложение, которое работает в разных режимах. Эти режимы полностью изменяют пользовательский интерфейс, поэтому для каждого режима требуется совершенно другой набор тестов E2E.

Я создал разные файлы конфигурации wdio для каждого режима и попытался также указать спецификации для каждого из них, так что он запускает только указанные спецификации. К сожалению, это не работает.

Итак, сейчас есть три файла wdio.conf (все из которых наследуются от значений по умолчанию от wdio.conf.js) и следующую структуру папок:

+--test
   +--specs
     +--browser
         +--modeA
            +--testFile.js
         +--modeB
            +--testFile.js
+--wdio.conf.js
|
+--wdio.conf.modeA.js
|
+--wdio.conf.modeB.js

Я создал команды npm для каждого режима, которые следующие:

// (package.json)
...
"tools:e2e": "./node_modules/.bin/wdio wdio/wdio.conf.js",
"tools:e2e:modeA": "./node_modules/.bin/wdio wdio/wdio.conf.modeA.js",
"tools:e2e:modeB": "./node_modules/.bin/wdio wdio/wdio.conf.modeB.js",
...

Хорошо, поэтому в каждом файле wdio.conf я указываю некоторые переменные, которые могут меняться в каждом из разных режимов (которые оба наследуют от wdio.conf), однако я хотел бы изменить, какие файлы запускаются, в основном указать, что я хочу только запустить файлы в папке modeA, когда я запускаю npm run tools:e2e:modeA запуска npm run tools:e2e:modeA, и только запускают файлы режима B, когда я npm run tools:e2e:modeB запуска npm run tools:e2e:modeB.

Я попытался сделать это, определив спецификации в каждом файле conf следующим образом:

// wdio.conf.js
specs: [
    './wdio/test/specs/browser/**/*.js'
  ],

-

// wdio.conf.modeA.js
  specs: [
    './wdio/test/specs/browser/modeA/*.js'
  ],
  exclude: [
    './wdio/test/specs/browser/modeB/*.js'
  ]

-

 // wdio.conf.modeB.js
  specs: [
    './wdio/test/specs/browser/modeB/*.js'
  ],
  exclude: [
    './wdio/test/specs/browser/modeA/*.js'
  ]

Это, однако, дает мне следующую ошибку:

Ошибка: свойства specs или exclude должны быть массивом строк

Это не имеет никакого смысла, потому что, как вы можете видеть, это массив строк!

Поэтому в основном я хочу запускать свои тесты wdio через мои команды npm, но только запускаю папку режима, а не все из них. Как я могу это сделать?

PS: Я попытался разделить их на разные сюиты и указать, какой пакет я запускаю в команде npm в моем пакете. Json, однако, делая это, я не могу затем указать, какую спецификацию я хочу запустить, что тоже Я использую много.

  • 0
    У wdio есть аргументы командной строки, которые вы можете использовать.
Теги:
selenium-webdriver
e2e-testing
webdriver-io

1 ответ

1

wdio принимает аргументы командной строки. Попробуй это


"tools:e2e:modeA": "./node_modules/.bin/wdio wdio/wdio.conf.js --spec ./wdio/test/specs/browser/modeA/*.js",
"tools:e2e:modeB": "./node_modules/.bin/wdio wdio/wdio.conf.js --spec ./wdio/test/specs/browser/modeB/*.js"

Таким образом, вам нужно поддерживать только один файл wdio.conf.js

  • 2
    Это то, что я использую, но скажу, что есть больше, чем на электронной спецификации на режим (который я сортировал в комплекты). Таким образом, мы ограничены одной спецификацией, которая не работает для меня. Тем не менее, я уже открыл вопрос по этой проблеме, и они будут работать над ним :) Спасибо за помощь независимо.
  • 0
    Можете ли вы дать ссылку на проблему? Я также заинтересован в том, чтобы следить за этим!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню