У меня есть приложение, которое работает в разных режимах. Эти режимы полностью изменяют пользовательский интерфейс, поэтому для каждого режима требуется совершенно другой набор тестов 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, однако, делая это, я не могу затем указать, какую спецификацию я хочу запустить, что тоже Я использую много.
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