Détection automatique des importations manquantes avec le service eslint
wdio-eslinter-service est un package tiers, pour plus d'informations veuillez consulter GitHub | npm
Avez-vous déjà lancé vos tests e2e, pour découvrir 10, 15 ou 30 minutes plus tard qu'il y avait une importation manquante/mal orthographiée, qui n'est apparue qu'au milieu de l'exécution du test ? Lorsque cela se produit, le test runner signale ces tests comme défectueux.
eslint est un excellent outil pour détecter différentes erreurs avant l'exécution, et ce service exécute l'outil eslint, avant d'exécuter les tests WebdriverIO, comme une étape automatisée au lieu d'une étape manuelle.
Il est souvent préférable d'échouer plus rapidement afin de pouvoir résoudre les problèmes plus tôt que tard.
La configuration recommandée consiste à utiliser le runner "unresolved" pour vérifier uniquement les importations manquantes, mais si vous le souhaitez, vous pouvez également configurer le service pour exécuter l'eslinter dans votre projet en utilisant le runner npm ou yarn, ou en passant un indicateur qui indique au système d'utiliser également votre configuration .eslintrc.
Installation
Installez le wdio-eslinter-service :
$ npm i wdio-eslinter-service --save-dev
Démarrage rapide - Vérifier uniquement les importations manquantes ou non résolues
Par défaut, cette configuration minimale, le runner "unresolved", vérifie les importations require non résolues et génère une erreur si des importations non résolues sont trouvées. Le service arrête alors l'exécution. Vous pouvez personnaliser .eslintrc.js pour effectuer davantage de vérifications en utilisant les runners "npm" ou "yarn", si vous le souhaitez. Voir eslint pour plus de détails.
Si vous n'avez pas de configuration .eslintrc.js dans votre projet, wdio-eslinter-service peut être configuré pour utiliser une configuration par défaut qui vérifie simplement les importations manquantes avant d'exécuter les tests. C'est pratique pour que vous découvriez les importations incorrectes plus tôt que tard. Pour configurer cela, ajoutez la configuration eslinter suivante à votre tableau de services (en supposant que vous utilisez déjà le service chromedriver ; sinon, omettez cette partie) :
wdio.conf.js:
services: ['chromedriver', [
'eslinter',
{
runnerType: 'unresolved'
}
]],
À ce stade, commencez à exécuter les tests, et s'il y a une importation manquante ou incorrecte, WebdriverIO l'enregistrera et mettra immédiatement fin à l'exécution du test :
$ npx wdio
Optionnel - si vous utilisez module-alias
Si vous utilisez le module module-alias, qui vous permet de configurer des alias pour remplacer les chemins relatifs, vous devrez le transmettre à la configuration eslinter en utilisant le plugin eslint-import-resolver-custom-alias. Voici un exemple :
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",
"@": "./"
}
}
}
}
}
}
]],
Installez le plugin dans votre projet :
$ npm i eslint-import-resolver-custom-alias
Exécutez les tests et vérifiez que le système trouvera les importations incorrectes qui utilisent des alias de modules :
$ npx wdio