Les coureurs de l'épreuve pour AngularJS - comment faire pour exécuter les tests à partir de l'IDE eclipse et serveur CI sans trop de complication?
Je suis en train d'essayer de trouver un moyen simple de faire des tests sur angularjs application.
Je suis nouveau sur le test, c'est un peu dur à comprendre toutes les options et la différence entre eux.
Mon objectif: être capable d'exécuter les tests simplement à partir de l'intérieur de mon IDE Eclipse.
Et de tests de code sur le navigateur google chrome.
J'ai trouvé le jasmin pour être le choix évident pour l'écriture de la js tests unitaires. Le problème est de choisir un coureur à la fois pour le jasmin tests et pour e2e tests.
Essayer de faire simple, je suis venu avec l'idée suivante pour une installation:
Écrire les tests unitaires dans le jasmin, et le e2e tests dans phantomjs et syn.js.
Puis configurer eclipse pour exécuter phantomjs comme un outil externe, de sorte que la sortie va aller à la console dans eclipse.
J'ai aussi l'intention d'avoir une IC de l'emploi dans Jenkins, et à ma compréhension Jenkins pouvez également exécuter fantôme, donc, théoriquement, cette solution fonctionne de la même pour la CI.
Sinon, il y a des essais de fonctionnement des outils comme le Karma et du Rapporteur. D'une part, ils semblent être recommandé, mais d'un autre côté, ils semblent à moi comme overkill dans certains cas. Ils exigent beaucoup de différents outils/services/processus en cours d'exécution pour le travail, et il semble comme une douleur de maintenir tous que le programme d'installation en cas de casse.
À ma compréhension: rapporteur s'exécute sur webdriverjs qui s'exécute sur nodejs, et il faut que le sélénium serveur en cours d'exécution en arrière-plan, et au-dessus de tout ce que le sélénium ouvre vrai navigateur de windows qui me semble un peu inutile, par opposition à la tête de test du navigateur.
Puis il y a le Karma, que je n'ai pas encore pleinement comprendre ce qu'il est censé faire. De ce que j'ai lu il surveille les fichiers dans mon projet et à chaque fois qu'un fichier est modifié, il exécute les tests. Je ne suis pas sûr de savoir comment il exécute les tests - est-il aussi à l'aide de sélénium?
Et enfin, il y a grognement et yeoman, que je ne comprenais pas tout ce qu'ils font et comment ils interagissent ou ajustement avec les autres outils que j'ai énumérés.
Je vous serais reconnaissant si quelqu'un pouvait préciser ce que ces différents outils, et comment ils s'organisent. Aussi, comment pourraient-ils s'adapter avec Jenkins en tant que serveur CI?
Aussi, si vous pouvez commenter sur mon "simple d'installation" - t-il un sens? Ai-je raté quelque chose?
OriginalL'auteur Malki | 2014-02-10
Vous devez vous connecter pour publier un commentaire.
Karma est pour les tests unitaires de vos JS, qu'il s'agisse de l'aide Angulaire ou pas. Les tenants et les aboutissants de tests unitaires avec Karma sont couverts très bien ici: http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-karma.html. Oui, le Karma s'ouvre et se ferme les fenêtres de navigateur comme nécessaire et spécifié dans le fichier de configuration. Si vous ne voulez pas n'importe quel navigateur windows ouvert, vous pouvez utiliser PhantomJS. Vous pouvez exécuter Karma, dans la plupart des tous les IDE qui est capable d'exécuter un script externe, ou l'exécuter via la ligne de commande.
Rapporteur, est de bout en bout (ou E2E) test de votre projet dans son ensemble. Il va ouvrir une fenêtre de navigateur et cliquez sur à travers les pages comme s'il s'agissait d'un utilisateur, la saisie de données où vous le dire et vous cherchez les résultats escomptés. Le rapporteur est un peu plus compliqué que d'écrire certains de Jasmin, mais les résultats en valent la peine. Comme le Karma, vous pouvez exécuter le Rapporteur de l'intérieur de la plupart de tout autre IDE qui est capable d'exécuter des scripts externes ou via la ligne de commande.
Yeoman est un système de gestion des processus qui intègre la gestion de la dépendance par Bower, l'automatisation des tâches via Grognement, et la gestion de projet via Yo. Il va s'exécuter vos tests dans le Karma et du Rapporteur, minifier vos JS, CSS et HTML, compiler le tout dans les fichiers appropriés (interne JS, les bibliothèques externes et CSS) et de vous fournir un package complet qui peut être déployé. La beauté de Yeoman, c'est qu'il n'est pas spécifique à un IDE. Tout ce qu'il ne peut être fait par des scripts dans votre IDE ou via la ligne de commande.
Maintenant, après avoir dit tout cela sur Yeoman, vous ne devez écrire les tests (il ne sera pas magiquement de venir avec eux pour vous) et d'apprendre à l'intégrer dans le développement de routine, mais il est certainement le chemin à parcourir pour JS développement. Eclipse est très bien pour les JS de développement, mais vous obtiendrez de meilleures performances et la facilité d'utilisation (à mon humble avis) de WebStorm.
Comme pour tous les contenir CI comme Jenkins, je crois que les deux Karma et du Rapporteur de la sortie des résultats de test dans un format que Jenkins peut lire et afficher. Avec le script de possibilités dans Jenkins, vous pouvez le configurer pour exécuter le processus de construction chaque fois que votre référentiel de contrôle source (vous êtes en utilisant une sorte de contrôle de code source, n'est-ce pas?) les modifications et afficher ces résultats sur le Jenkins page. Mon bureau est très semblable à la configuration, et nous l'utilisons tous les jours. Je ne suis pas le gars qui a à voir la configuration de Jenkins, mais je ne travailler avec Yeoman (et donc le Karma et du Rapporteur) via WebStorm sur une base régulière et ont eu de très bons résultats.
Je n'ai jamais eu de problème avec aucun d'entre eux n'opère pas. La plus grande chose que vous devez surveiller est la version requise de Node.js (requis pour exécuter Yeoman, Grunt, et Karma) et quelle version de Grunt/Karma et tous les plugins, vous pouvez utiliser l'exigent. En général, j'ai trouvé l'ensemble du système très fiable et facile à utiliser. Il y a une multitude de réponses se trouvent sur chacun des deux ici sur soi et sur le web en général. Vous pouvez rester sur la version que vous téléchargez pour un temps très long, ou les mettre à jour et de rester sur le bord des choses. Il est de votre choix.
OriginalL'auteur MBielski
Je dirais que le choix évident ici est le Karma et du Rapporteur. S'il est vrai qu'ils dépendent d'un tas d'autres trucs, ils le font assez antiseptically: rapporteur démarre le sélénium serveur, puis il s'éteint quand il est fait. Une fois que vous avez nœud installé, les autres installations sont toutes super simple. Je voudrais aussi installer httpster, qui va servir de votre public directeur sur le port 3333.
Franchement, venant d'une décennie de faire du TDD dans le monde Java, lorsque j'ai d'abord regardé Javascript il y a quelques années (à nouveau), l'analyse d'image a été une farce complète. Mais maintenant, je pense que la combinaison du Karma et du Rapporteur est assez fantastique. À l'intérieur de l'Ide, vous pouvez exécuter le Karma des tests et qu'ils sont stupides rapide et les résultats sont présentés dans un coureur qui est aussi bon que tout ce que j'ai vu dans le monde Java (Xcode 5 est le meilleur test d'intégration). Vous pouvez également installer le ddescribe plugin dans l'Ide, et ont une interface utilisateur pour l'exécution de tests individuels ou à l'exclusion des tests.
Sur le rapporteur côté, j'ai trouvé ce post parce que je suis au point où je vais exécuter mon karma, rapporteur, et puis JUnit tests sur un serveur d'intégration continue (Jenkins ou TeamCity). J'ai été un peu surpris par le manque d'info sur cette étape du voyage, mais la direction que je vois il n'y a Grunt, car il sera exécutez votre rapporteur tests puis générer le JUnit-style de sortie Jenkins veut. Grunt est aussi une assez impressionnante de plus de la JS monde.
Je sais que cela sonne comme un tas d'opinions, mais je pense que comme c'est arrivé dans le monde Java, le Javascript monde a maintenant atteint le niveau de maturité où vous allez juste devoir attendre que les choses à faire glisser d'autres choses avec eux. Franchement, on dirait nœud et npm faire un très bon travail de faire cela assez homogène (par rapport à une décennie dans le drain sur Maven dans le monde Java).
OriginalL'auteur Rob
Mise à jour: Désolé, je n'ai pas lu votre question correctement.
karma est un lanceur de test, ce qui est le mieux adapté pour jasmine. Pour la mise en place est très très facile. S'il vous plaît télécharger le nœud, et installer npm install karma. Suivez l'angle de semences sandbox projet, il contient toutes les config de base mis en place pour les tests unitaires et de fin pour mettre fin à l'essai (dans le dossier config).tous vous avez besoin est de nodejs installé le plugin dans eclipse
Yeoman peut être utilisé pour javascript minification, sass compilation e.t.c.
OriginalL'auteur madhured
Nœud installer eclipse et vous pouvez définir tous dans eclipse.
http://www.nodeclipse.org/
le karma est un lanceur de test, ce qui est le mieux adapté pour jasmine. Pour la mise en place est très très facile. S'il vous plaît télécharger le nœud, et installer npm install karma. Suivez l'angle de semences sandbox projet, il contient toutes les config de base mis en place pour la fin à la fin de l'essai. Laissez-moi savoir si vous avez besoin d'aide dans le travail avec elle. Tous vous avez besoin est le nœud installé.
OriginalL'auteur madhured