120 votes

Test de Meteor axé sur le développement

Je ne vois pas comment faire le test driven development dans le météore.

Je ne le vois pas mentionné nulle part dans la documentation ou de la FAQ. Je ne vois pas d'exemples ou quelque chose comme ça.

Je vois que certains paquets sont à l'aide de Tinytest.

J'aurais besoin de la réponse des développeurs, ce qui est de la feuille de route à ce sujet. Quelque chose le long des lignes de:

  • possible, pas de documentation, de comprendre vous-même
  • meteor n'est pas construit de manière à ce que vous pouvez faire testable apps
  • cette fonctionnalité est prévue
  • etc

83voto

Blackcoat Points 1412

Mise à jour: la Vélocité est Météore officiel de la solution de test de 0.8.1.


Pas beaucoup de choses ont été écrites au sujet de l'automatisation des tests avec Meteor en ce moment. J'attends le Météore de la communauté d'évoluer tester les meilleures pratiques avant de créer quoi que ce soit dans la documentation officielle. Après tout, un Météore a atteint 0,5 cette semaine, et les choses sont toujours en train de changer rapidement.

La bonne nouvelle: vous pouvez utiliser Node.js outils de test avec Meteor.

Pour mon projet Meteor, je lance mes tests unitaires avec Moka à l'aide de Chai pour les assertions. Si vous n'avez pas besoin de Chai ensemble, je recommande d'utiliser should.js au lieu de cela. Je n'ai que des tests unitaires pour le moment, mais vous pouvez écrire des tests d'intégration avec Moka.

Assurez-vous de placer vos tests dans les "essais" de dossier , de sorte que le Météore ne tentez pas d'exécuter vos tests.

Moka prend en charge CoffeeScript, mon choix de langage de script pour Meteor projets. Voici un exemple de Cakefile avec des tâches pour l'exécution de vos Moka tests. Si vous utilisez JS avec Meteor, n'hésitez pas à adapter les commandes pour un Makefile.

Votre Meteor modèles aurez besoin d'un peu légère de la modification d'exposer eux-mêmes à Moka, et cela nécessite une certaine connaissance de la façon dont Node.js des œuvres. Pensez à chaque Node.js fichier comme étant exécutée à l'intérieur de son propre champ. Meteor automatiquement expose les objets dans des fichiers différents l'un de l'autre, mais ordinaire Nœud applications-comme Moka-ne le faites pas. Pour rendre nos modèles testables par Moka, l'exportation de chaque Météore modèle avec la suite de CoffeeScript modèle:

# Export our class to Node.js when running
# other modules, e.g. our Mocha tests
#
# Place this at the bottom of our Model.coffee
# file after our Model class has been defined.
exports.Model = Model unless Meteor?

...et au sommet de votre Moka test, importer le modèle que vous souhaitez tester:

# Need to use Coffeescript's destructuring to reference
# the object bound in the returned scope
# http://coffeescript.org/#destructuring
{Model} = require '../path/to/model'

Avec cela, vous pouvez commencer l'écriture et l'exécution des tests unitaires avec votre projet Meteor!

44voto

Arunoda Susiripala Points 1067

Salut à tous checkout laika - le tout nouveau framework de test pour meteor http://arunoda.github.io/laika/

Vous pouvez tester le serveur et le client à la fois.

Avertissement: je suis l'auteur de Laika.

14voto

zealoushacker Points 1007

Je me rends compte que cette question est déjà répondu, mais je pense que cela pourrait utiliser un peu plus de contexte, sous la forme d'une réponse supplémentaire de fournir ce contexte.

J'ai fait quelques du développement d'une application avec meteor, ainsi que le développement de package, à la fois par la mise en œuvre d'un paquet pour meteor core, ainsi que pour l' atmosphère.

Il semble que votre question est peut-être effectivement une question en trois parties:

  1. Comment exécuter l'ensemble du météore de la suite de tests?
  2. Comment écrire et d'exécuter des tests pour personne intelligente des paquets?
  3. Comment écrire et d'exécuter des tests pour sa propre application?

Et, il sonne comme il peut être une question bonus, quelque part: 4. Comment peut-on mettre en œuvre l'intégration continue pour les 1, 2 et 3?

J'ai été parler et commencé à collaborer avec Naomi Seyfer (@sixolet) sur le météore de l'équipe de base pour aider à obtenir des réponses définitives à toutes ces questions dans la documentation.

J'avais présenté une première demande d'extraction d'adressage 1 et 2 de météore de base: https://github.com/meteor/meteor/pull/573.

J'ai eu aussi récemment répondu à cette question: Comment exécuter le météore tests?

Je pense que @Blackcoat a définitivement répondu 3, ci-dessus.

Comme pour le bonus, 4, je conseille circleci.com au moins pour faire de l'intégration continue pour vos propres applications. Ils prennent en charge les cas d'utilisation que @Blackcoat avait décrit. J'ai un projet dans lequel j'ai obtenu avec succès les tests écrits en coffeescript pour exécuter les tests unitaires avec moka, à peu près comme @Blackcoat avait décrit.

Pour une intégration continue sur meteor core, et la smart paquets, Naomi Seyfer et j'sont à discuter avec le fondateur de circleci pour voir si nous pouvons faire quelque chose de génial en œuvre dans le court terme.

12voto

Sam Hatoum Points 506

RTD est maintenant obsolète et remplacé par la Vitesse, qui est le test officiel de cadre pour Meteor 1.0. La Documentation est encore relativement nouveau que la Vitesse est en développement. Vous pouvez trouver plus d'informations sur la Vitesse de dépôt Github, la Vitesse de la page d'Accueil et Le Météore de Test Manuel (contenu payant)

Avertissement: je suis l'un des principaux membres de l'équipe de la Vitesse et de l'auteur du livre.


Découvrez RTD, un framework de test pour Meteor ici rtd.xolv.io. Il prend en charge de Jasmin/Moka/personnalisé et travaille à la fois la plaine de JS et de café. Il comprend la couverture de test trop qui combine unité/serveur/client de la couverture.

Et un exemple de projet ici

Un blog pour expliquer les tests unitaires avec Meteor ici

Un e2e l'acceptation de l'approche des tests à l'aide de Sélénium WebdriverJS et Meteor ici

Espérons que cela aide. Avertissement: je suis l'auteur de la RDT.

6voto

pipedreambomb Points 57

J'ai utilisé cette page beaucoup de choses et essayé toutes les réponses, mais de mon débutant le point de départ, je les ai trouvés assez déroutant. Une fois que j'ai eu aucun problème, j'ai été sidéré de la façon de les résoudre.

Cette solution est vraiment simple pour commencer avec, si ce n'est entièrement documenté et pourtant, je vous le recommande pour les personnes comme moi qui veulent faire TDD, mais ne sont pas sûr de la façon dont les essais en JavaScript qui fonctionne et qui bibliothèques plug en ce que:

https://github.com/mad-eye/meteor-mocha-web

Pour info, j'ai trouvé que j'ai aussi besoin d'utiliser le routeur Atmosphère paquet pour faire un '/tests " de l'itinéraire pour exécuter et afficher les résultats de ces tests, que je n'en voulais pas encombrer mon application à chaque fois qu'il se charge.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X