Quel est le meilleur framework de test à utiliser avec Node.js?
J'ai regardé le plutôt longue liste de tests des cadres de https://github.com/ry/node/wiki/modules#testing. Qu'est-ce que l'expérience avec ces cadres?
Évidemment la capacité à exécuter dans le navigateur serait un gros bonus, mais je suis surtout intéressé par l'Node.js. Quelque chose avec un très asynchrone inclinaison serait génial.
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
Moka est le meilleur à mon avis.
J'ai joué avec expresso ce qui est plutôt cool framework de test qui a aussi des test de couverture. Il a été créé par TJ Holowaychuk qui est aussi le créateur de Express.js (incroyablement rapide (et les petites) JavaScript côté serveur web de cadre de développement intégré sur Node.js et de se Connecter). J'ai récemment vu qu'il a aussi une bibliothèque intéressante appelée should.js qui peuvent être utilisés ensemble avec Expresso pour une encore meilleure expérience de test.
Je ne crois pas qu'il peut s'exécuter dans le navigateur, mais je ne comprends pas pourquoi vous voulez exécuter dans le navigateur?
Citation de l'expresso:
Vous pouvez utiliser beforeExit pour tester asynchrone fonctions.
ASTUCE: Suivre TJ Holowaychuk sur GitHub, parce qu'il crée de très bon open-source code.
- Je utiliser VowsJS qui est facile à utiliser asynchrone BDD cadre (Behaviour Driven Development) et d'obtenir le travail fait.
De ce que je vois ces derniers temps c'est ce que beaucoup ont choisi de tester leur MNP modules, alors je crois que jusqu'à présent c'est l'un des meilleurs à utiliser.
Des infrastructures de test qui peut être utilisé avec NodeJS sont aussi ceux:
Vous pouvez également voir une liste de JavaScript frameworks de test ici
Peu plus de libs qui pourraient vous aider à mieux écrire de code sont ceux:
Il est également Bambou Serveur CI par Atlassian il automatise les versions et des tests. C'est un package pour Apache/Tomcat (qui sux, car il utilise Java et qui le rend très lourd) aussi n'est pas libre, mais il a un starter de licence qui coûte 10 $ donc, je crois qu'il est abordable. Il est le plus en vedette de tous les serveurs CI que j'ai trouvé jusqu'à présent et il prend en charge tous les tests d'unité de soutien xUnit qui signifie que vous pouvez exécuter des builds/tests pour n'importe quelle langue avec du Bambou.
Une autre option pour l'IC avec NodeJS est Travis qui beaucoup de gens utilisent pour leurs projets open source, comme il est dit hébergé intégration continue service de la communauté open source.
Il y a aussi un google groupe de discussion avec Intégration continue pour Node JS Projets sujet.
Basée sur le sens de commentaires ci-dessus, j'ai essayé vœux, et il a résolu beaucoup de problèmes que j'avais avec mon async tests. Sa capacité à mélanger en série et en parallèle des tests est génial.
Assurez-vous de lire le document d'orientation doc soigneusement, mais une fois que vous obtenez le coup de lui, il est souple, puissant, et produit agréable, propre.
Mise à JOUR: je voudrais aussi encourager les gens à consulter devrait pour leur affirme. Il permet une très flexible, très lisible affirme, et est compatible avec Expresso et des Vœux, et probablement la plupart des autres frameworks de test ainsi.
(Je poste cela comme une réponse distincte juste au cas où les gens ne remarquent pas les commentaires sur Alfred de réponse.)
Mise à JOUR 1/7/2015: Pour ce que ça vaut, j'ai depuis changé à partir de Vœux à Moka, et en cas de Chai. Moka a beaucoup plus de soutien pour les tests asynchrones à l'aide de promesses, et Chai permet plusieurs flexible affirmer options, y compris la
expect
api, pour ceux qui n'aiment pas modifier l'objet prototype.should
punaises non énumérable propriété nomméeshould
à laObject
prototype, qui signifie tous, des valeurs ou des objets que vous avez à traiter avec le regard un peu différentes au test du temps et au moment de la production. Alors que c'est probablement ce qui fonctionne dans la plupart des cas, c'est en principe une mauvaise idée de modifier intégré prototypes; pour cela seulement pendant les tests se sent mal. On a tous été uniquement fait pour qu'ils puissent avoir une belle syntaxe.should
sans l'extensionObject.prototype
(appelez simplementrequire('should').noConflict()
et l'utilisation should.js que s'attendre à une alternative.J'ai commencé à utiliser Jasmin pour mon test JavaScript précisément parce qu'elle est petite et s'exécute dans un navigateur et un nœud. Il a aussi une très solide de rapports et de la correspondance de l'API, donc il est facile à intégrer avec d'autres outils dans le futur. Avoir un bâtiment se moquant de cadre est également utile, car il est souvent l'une des premières choses que je voudrais ajouter, lorsque j'ai été en utilisant qunit pour le TDD dans le navigateur.
Si vous voulez un vrai BDD cadre alors peut-être envisager de Yadda. Il s'intègre à moka, de jasmin, de nodeunit, qunit, zombie et casperjs, à la fonctionnalité de prise en charge des fichiers, par exemple
J'ai été en utilisant nodeunit et sa capacité à travailler avec async fonctions est relativement simple.
Il y a une belle procédure pas à pas vous prêt à aller avec nodeunit sur son blog.
[ Remarque: l'API a changé depuis l'article sur le blog –
setUp(callback)
ettearDown(callback)
ont tous deux une fonction de rappel qu'un argument, qui vous avez besoin à appeler lorsque votre installation/démontage est terminé. ]