2
votes

Comment puis-je vérifier automatiquement les appels «.only» laissés accidentellement dans les spécifications Mocha?

J'oublie parfois de supprimer les appels .only de mes spécifications Mocha avant de pousser les modifications de spécifications. Cela affecte évidemment la couverture des tests, ce qui nécessite de résoudre le (s) échec (s). J'aimerais les attraper avant de pousser les changements, idéalement dans le cadre du processus de peluchage avec ESLint et avec un minimum d'effort.


0 commentaires

3 Réponses :


0
votes

Ma solution était d'utiliser un simple script bash avec la commande grep , ajouté à la section des scripts package.json comme ceci:

"scripts": {
  "lint:only": "RESULT=\"$(grep -rHn '[.]only\\|[.]skip' spec/ --color=always)\"; if [ -n \"$RESULT\" ]; then printf \"Oops! You left a few things in your specs! \n\n${RESULT}\n\n\"; fi",
  "lint": "eslint --ext js src config scripts bin config server; yarn lint:only"
  ...
}

En un mot, cela vérifie le répertoire spec / pour tout ce qui correspond à .only ou .skip et renvoie le nom de fichier + ligne le cas échéant offensant est trouvé. La couleur est ajoutée pour plus de clarté et le script est exécuté dans le cadre du lintage avec ESLint et Yarn.


0 commentaires

1
votes

Vous avez un paramètre --forbid-only à passer lors de l'exécution de mocha qui fera échouer vos tests.

Vous avez également le --forbid-pending .

Voici la documentation officielle:

--forbid-only entraîne l'échec du test marqué avec uniquement l'échec de la suite

--forbid-pending entraîne l'échec de la suite des tests en attente et des tests marqués avec skip


0 commentaires

3
votes

Vous recherchez le règle mocha / no-exclusive-tests , qui fait partie du plugin eslint-plugin-mocha . Il échoue s'il trouve un describe.only ou it.only . Très utile!

De la documentation: p>

Ce plugin nécessite ESLint 4.0.0 ou une version ultérieure.

{
  "plugins": [
    "mocha"
  ],
  "rules": {
    "mocha/no-exclusive-tests": "error"
  }
}

Ensuite, ajoutez une référence à ce plugin et aux règles sélectionnées dans votre configuration eslint:

npm install --save-dev eslint-plugin-mocha

Il existe également un mocha / no-skipped-tests si vous voulez empêcher it.skip ou xit de être commis aussi. Cependant, je trouve que .skip est parfois valide, donc je trouve préférable d'empêcher simplement .only .

Ce plugin a également une tonne de autres vérifications utiles, alors assurez-vous de lire leurs documents!


0 commentaires