L'exécution de plusieurs commandes pour des mnp test
Je suis actuellement en utilisant une gorgée tâche pour tester un projet. Il exécute des tâches en utilisant les outils suivants:
- Karma (async)
- Rapporteur (générés processus)
- ESlint (à l'aide de
gulp-eslint
) - HTMLHint (à l'aide de
gulp-htmlhint
) - Stylelint (à l'aide de
gulp-postcss
)
La tâche échoue si l'une de ces tâches a échoué.
Tous ces outils ont parfaitement bien cli interfaces. J'ai donc décidé que je voudrais utiliser ces outils à l'aide d'un mécanisme de prévention de script de test à la place.
Pour simplicitly disons tous les outils d'exécution en invoquant simplement sans drapeaux. Ceci peut être fait en utilisant:
{
...
"scripts": {
"test": "karma && protractor && eslint && htmlhint && stylelint"
},
...
}
Toutefois, cela signifie que si karma
échoue, aucun des autres outils d'exécution.
Est-il possible de créer une configuration où tous ces outils fonctionnent, mais npm test
échoue si l'une des commandes d'échec?
OriginalL'auteur Remco Haszing | 2016-02-26
Vous devez vous connecter pour publier un commentaire.
npm-run-tous les peut aussi gérer ce bien
Vous pouvez exécuter plusieurs mnp commandes simultanément, en continuant sur l'erreur comme suit:
npm-run-all --parallel --continue-on-error karma protractor eslint htmlhint stylelint
Options comme écrit dans la documentation:
OriginalL'auteur Chris
Les scripts des balises dans
package.json
sont gérés par votre coque, de sorte que vous pouvez exécuter la commande que vous souhaitez que le shell à exécuter:Va exécuter toutes les commandes, si vous avez un unix/OSX shell.
Pour être en mesure de conserver les exit_code comme vous spécifier que vous avez besoin d'avoir un script pour exécuter les commandes. Peut-être quelque chose comme ceci:
J'ai ajouté un exemple de cela maintenant.
Notez que le
test
script dans le premier exemple ne prend pas en charge Windows, le;
syntaxe n'est pas valide dans PowerShell.sh: 1: Syntax error: ";" unexpected
et ce suce ;__;Sous powershell, plutôt que de
&&
, utilisez&
.OriginalL'auteur bolav
simultanément est une belle bibliothèque qui peut gérer cela. Il peut être installé à partir de mnp.
Lors de chaque section est triée comme un script séparé, la section de scripts
package.json
ressemble un peu à ça:"test": "concurrently 'npm run karma' 'npm run protractor' 'npm run eslint' 'npm run htmlhint' 'npm run stylelint'"
devrait être"test": "concurrently \"npm run karma\" \"npm run protractor\" \"npm run eslint\" \"npm run htmlhint\" \"npm run stylelint\""
sur windows.OriginalL'auteur Remco Haszing