Автоматичне виявлення пропущених імпортів за допомогою eslint Service
wdio-eslinter-service — це сторонній пакет, для отримання додаткової інформації відвідайте GitHub | npm
Чи траплялося вам запускати e2e тести, лише щоб дізнатися через 10, 15 або 30 хвилин, що був відсутній/неправильно написаний імпорт, який з'явився тільки в середині тестового запуску? Коли це відбувається, тест-ранер позначає ці тести як зламані.
eslint — чудовий інструмент для виявлення різних помилок до запуску, і ця служба запускає інструмент eslint перед виконанням тестів WebdriverIO як автоматизований крок замість ручного.
Часто краще швидше зазнавати невдачі, щоб ми могли виправляти проблеми раніше, а не пізніше.
Рекомендована конфігурація — використовувати unresolved runner для перевірки лише відсутніх імпортів, але за бажанням ви також можете налаштувати сервіс для запуску eslinter у вашому проекті за допомогою npm або yarn runner, або передавши прапорець, який вказує сис темі використовувати вашу конфігурацію .eslintrc.
Встановлення
Встановіть wdio-eslinter-service:
$ npm i wdio-eslinter-service --save-dev
Швидкий старт - Перевірка лише відсутніх або нерозпізнаних імпортів
За замовчуванням, ця мінімальна конфігурація, "unresolved" runner, перевіряє нерозпізнані імпорти require і видає помилку, якщо знайдено нерозпізнані імпорти. Потім сервіс припиняє виконання. Ви можете налаштувати .eslintrc.js для виконання додаткових перевірок за допомогою "npm" або "yarn" runners, якщо бажаєте. Див. eslint для отримання додаткової інформації.
Якщо у вашому проекті немає конфігурації .eslintrc.js
, то wdio-eslinter-service можна налаштувати на використання стандартної, яка просто перевіряє відсутні імпорти перед запуском тестів. Це зручно, щоб дізнатися про неправильні імпорти раніше, а не пізніше. Щоб налаштувати це, додайте наступну конфігурацію eslinter до масиву services (припускаючи, що ви вже використовуєте сервіс chromedriver; в іншому випадку, залиште цю частину):
wdio.conf.js:
services: ['chromedriver', [
'eslinter',
{
runnerType: 'unresolved'
}
]],
На цьому етапі почніть запускати тести, і якщо існує відсутній або неправильний імпорт, WebdriverIO зареєструє його та негайно завершить тестовий запуск:
$ npx wdio
Додатково - якщо використовується module-alias
Якщо ви використовуєте модуль module-alias, який дозволяє налаштувати псевдоніми для заміни відносних шляхів, вам потрібно передати їх у конфігурацію eslinter за допомогою плагіна eslint-import-resolver-custom-alias. Ось приклад:
services: ['chromedriver', [
'eslinter',
{
runnerType: 'unresolved',
eslintOverride: {
"settings": {
"import/resolver": {
"eslint-import-resolver-custom-alias": {
"alias": {
"@utils": "./utils",
"@specs": "./test-sync/specs",
"@pageobjects": "./test-sync/pageobjects",
"@": "./"
}
}
}
}
}
}
]],
Встановіть плагін у свій проект:
$ npm i eslint-import-resolver-custom-alias
Запустіть тести та перевірте, чи система знайде неправильні імпорти, які використовують псевдоніми модулів:
$ npx wdio