8
votes

Quel test-Cadre pour JavaScript prend en charge les tests sans navigateur?

Pour JavaScript, des tests-cadres existent, comme Jsunit ou JS-Test-Test-Test-Pilote. Ils vont bien, mais ils exécutent les tests dans un navigateur. C'est bien, surtout pour vérifier que votre webApp est en cours d'exécution dans différents navigateurs. Mais sur l'intégration continue-serveur, aucun système de fenêtre (et aucun navigateur) n'est installé. Alors, y a-t-il un moyen d'exécuter les tests sans l'utilisation d'un navigateur? Le meilleur serait d'utiliser l'un des cadres existants afin que les développeurs puissent exécuter localement les tests de leurs navigateurs et que le système continu-intégration fonctionne sans navigateur.


3 commentaires

Ce n'est pas une réponse à votre question, mais je suggérerais de tester la chose dans un vrai navigateur. C'est ce que les utilisateurs finaux verront, cela devrait donc être testé. Sur quel OS est installé le CI?


Le CI est installé sur Linux, mais sans X. Les tests dans un navigateur ne sont pas possibles sur le serveur CI. Dans les navigateurs, il sera testé de toute façon par les développeurs, mais je tiens à ajouter les tests également à CI.


Que diriez-vous de fantomjs?


6 Réponses :


1
votes

Jstest peut être exécuté ligne de commande ou comme plug-in Eclipse. < / p>

Cependant, soyez prudent, vous n'obtiendrez pas une couverture de code à 100% à l'aide d'un outil tel que vous devez prendre en charge plusieurs navigateurs. Chaque navigateur implémente JavaScript différemment (I.E.: IE). Par conséquent, le seul moyen de tester pleinement votre JavaScript consiste à exécuter les tests de tous les navigateurs que vous prenez en charge.


2 commentaires

Je ne sais pas pourquoi vous dites que vous ne pouvez pas obtenir une couverture de 100%. La couverture signifie que le code est exécuté. Le problème que vous indiquez (compatibilité croisée croisée) est que le même code peut signifier (et faire) des choses différentes dans différents environnements d'exécution. L'implication est que si vous avez une couverture de 100% dans Firefox, cela pourrait ne pas vous dire tout ce que vous voulez savoir sur le comportement du code dans IE. Vous pouvez obtenir une couverture à 100% sans obtenir 100% de connaissances. (Et même une couverture de 100% dans tous les navigateurs n'est pas la même que 100% de connaissances, mais c'est un problème différent.)


C'était il y a 5 ans. Le développement Web a ensuite été plein de bifurcations dépendantes du navigateur, car les API étaient si disparates. Si vous avez exécuté votre test dans Firefox, certains coureurs de ligne de commande, etc. Vous ne pouvez pas exécuter aucun du code dans l'autre branche qui gérait un autre navigateur. Puisque vous quittez la moitié de vos branches non testées, vous ne pouvez pas réclamer une couverture de code à 100%. De nos jours, le paysage est beaucoup différent. Honnêtement, je ne me souviens pas de la dernière fois que je devais faire différentes choses pour différents navigateurs.



0
votes

Je crois que Canoo WebTest peut être exécuté sans navigateur. Il s'agit fondamentalement d'un cadre de test frontal, mais peut également être utilisé pour tester JavaScript:

http://webest.canoo.com/


0 commentaires

1
votes

Vous pouvez être intéressé par HTMLUnit utilisé par plusieurs travaux de test d'interface utilisateur comme webDriver


0 commentaires

0
votes

JSPEC peut être exécuté sans navigateur (en utilisant Rhino). Mais soutient également être exécuté dans des navigateurs également.

http://visionmedia.github.com/jspec/

Il fournit également une belle syntaxe de style de spécification: xxx

en exécutant toutes vos tests d'unité en dehors d'un navigateur, vous obtenez également la Avantages d'assurer la séparation de votre logique de la couche HTML / PRESENTATION (utile pour les applications Web, éventuellement surkill pour les petits scripts).


1 commentaires

Le projet JSPEC est mort et, avant que leur site ne disparaisse entièrement, Jasmine recommandé à la place. Stackoverflow.com/Questtions/3912312/jspec-no-longer-supporte d



0
votes

Jasmine va courir assez heureux à l'intérieur de nœud.js.


0 commentaires