Quelques questions:
- Comment Karma et le framework de test X (Jasmine, Mocha, QUnit) sont-ils liés?
- Quel est le framework équivalent au monde Java? Je suppose que Jasmine, Mocha, QUnit est égal à jUnit / TestNG. Et le Karma?
- Puis-je exécuter le framework de test X (par exemple Jasmine) sans Karma?
- Karma est-il pour le test unitaire ou le test d'intégration / e2e? Cette référence montre que c'est pour le test unitaire, mais cela est dit pour le test e2e.
javascript
unit-testing
integration-testing
Lee Chee Kiam
la source
la source
Réponses:
Karma est un lanceur de test de navigateur.
L'idée est que les navigateurs n'ont pas nativement un concept de chargement des fichiers de tests, de les exécuter et de rapporter les résultats. Ce que fait le karma est (grosso modo):
En regardant chaque partie:
(1) Ces fichiers seront vos fichiers js réels; vous direz au karma comment les charger. Si vous utilisez requirejs, il existe un plugin de karma et une configuration est nécessaire.
(2) Ces tests peuvent être écrits dans une variété de framework de test Javascript (Jasmine, QUnit, Mocha); c'est du code JS qui est exécuté dans le navigateur.
(3) La page Web personnalisée sera un peu différente pour chaque framework de test; c'est pourquoi karma a des plugins pour différents frameworks.
(4) Karma peut lancer la page dans de nombreux navigateurs (FF, Chrome ou navigateurs sans tête comme PhantomJs.)
(5) Les rapports au karma sont, encore une fois, dépendants du framework et traités avec les plugins de karma.
Alors pour répondre à vos questions:
la source
Une façon plus courte de comprendre la différence:
Les personnes qui testent avec Jasmine / Mocha ordinaire exécutent très probablement tout le code avec la machine virtuelle Node.
Ajouter Karma au mix (en plus de votre framework de choix existant) lancera votre suite de tests avec le moteur d'autres navigateurs.
En faisant cela, vous obtenez les petits extras que vous obtenez avec un environnement de navigateur. Il sera plus facile de tester le code DOM, mais vous abandonnerez également les ressources supplémentaires fournies par le moteur Node (comme l'accès au système de fichiers / shell)
la source
La thèse du gars qui a conçu Karma a été très informative pour décrire les solutions existantes et les comparer, et bien sûr pour décrire le Karma lui-même
https://github.com/karma-runner/karma/blob/master/thesis.pdf
Résumé: Karma est un testeur. Il peut être utilisé par QUnit, Jasmine, Mocha, ... Karma a des avantages par rapport aux autres testeurs pour améliorer votre cycle de développement TDD / BDD. Il "surveille" les fichiers, donc lorsque vous enregistrez une modification, Karma exécute des tests et rend compte instantanément, sans basculer le contexte vers le navigateur Web pour exécuter le test.
En bref, la question devrait peut-être être Karma ET Jasmine ou Mocha ou QUnit?
la source