dépannage go karma

dépannage go Karma

Magazine Software Development - Gestion de projet, programmation, tests logiciels

Karma - un coureur test Javascript

Karma est un coureur de test pour JavaScript qui fonctionne sur Node.js. Il est très bien adapté aux tests AngularJS ou tout autre projet JavaScript. En utilisant Karma pour exécuter des tests en utilisant l'une des nombreuses suites de tests JavaScript (Jasmine, Mocha, QUnit, etc.) populaires et ont les tests effectués non seulement dans les navigateurs de votre choix, mais aussi sur la plate-forme de votre choix (bureau, téléphone, comprimé.) Le karma est hautement configurable, intègre des packages d'intégration continue populaires (Jenkins, Travis, et Sémaphore) et offre un excellent support de plug-in.

Testée Version: v0.10 courir sur NodeJS 0.8.19 fonctionnant sous Windows 7 Professionnel 64 bits

Licence et Prix: Open source

L'emplacement d'installation recommandée de Karma est dans votre répertoire global de node_modules. Installation Karma se fait via le package Node Manager (NPM). De toute invite de commande, entrez la commande suivante: NPM installer le karma -g. Si vous désirez installer Karma dans votre répertoire local, vous pouvez utiliser: installer NPM karma -save-dev. Ce processus vous obtiendrez l'installation par défaut du Karma, qui comprend le karma-chrome-lanceur, couverture-karma et plugins karma-jasmin. Il y a aussi plusieurs plug-ins (une liste se trouve à https : // npmjs . org / Feuilleter / mot-clé / karma - brancher ) Que vous devriez envisager d'installer pour rendre votre gestion des tests et de sortie plus facile et plus utile. Je l'utilise régulièrement le karma-firefox-lanceur et plugins karma-ie-lanceur. Tous les plugins doivent être installés avant d'essayer de configurer ou utiliser Karma, mais vous pouvez toujours ajouter un nouveau plus tard sans problèmes du tout. L'installation des plugins est tout aussi simple que l'installation de Karma. De toute invite de commande, entrez la commande suivante: NPM installer -g-karma-<nom du plugin>.

Avant d'exécuter Karma vous devez le configurer. Ceci est l'étape la plus importante dans la mise en place Karma. La meilleure façon de commencer est d'exécuter la commande init. Dans une fenêtre de commande, accédez à votre dossier de projet et entrez le karma d'initialisation karma.conf.js (valeur par défaut, mais vous pouvez nommer le fichier que vous voulez.) Les questions sont faciles à répondre et le résultat net est un bien structuré fichier de configuration de Karma. Vous aurez besoin de répondre aux questions suivantes:

  • Quel cadre de test voulez-vous utiliser?

Jasmine, Mocha et QUnit sont installés par défaut et peuvent être référencées par leur nom, mais si vous avez installé un autre, vous devriez le nommer ici. Parce que chaque cadre est un plug-in, vous devez indiquer le fichier plug-in dans la section plugins du fichier de configuration ainsi (voir le fichier de configuration ci-dessous pour un exemple.)

Require.js est un cadre de chargement paresseux que de nombreux développeurs utilisent pour minimiser les temps de chargement de script initial dans le navigateur. Si votre projet utilise est, vous devez répondre OUI à cette question.

  • Voulez-vous capturer un navigateur automatiquement?

Vous devez répondre avec le nom du navigateur (s) que vous souhaitez utiliser, une par ligne. Rappelez-vous que vous devez avoir la mise en correspondance plug-in -launcher installé pour chaque navigateur, et que seul le karma-chrome-lanceur et plug-in karma-chromeCanary lance-sont installés par défaut. La saisie d'une ligne vide passer à la question suivante.

  • Quel est l'emplacement de la source et les fichiers de test?

Ce chemin est relatif à l'emplacement du Karma. Vous pouvez entrer un chemin absolu et être assuré de diriger Karma au bon endroit, ou entrez un chemin relatif si vos fichiers sont situés sous le dossier Karma.

  • Si l'un des fichiers inclus par les modèles précédents exclus?

Si vous utilisez un modèle très large, vous pouvez exclure le dossier où vous stockez vos images, ou là où il n'y a pas de fichiers .js à tester. les modèles plus serrés prennent plusieurs lignes dans le fichier de configuration, mais éliminent également la nécessité d'un bloc d'exclure.

  • Voulez-vous Karma à regarder tous les fichiers et exécuter des tests sur le changement?

Avoir Karma est géré de façon continue très utile que vous pouvez voir vos tests et le code évoluent dans un environnement TDD. Si vous ne le faites pas TDD, vous pouvez choisir de Karma ne fonctionne que lorsque vous êtes prêt à exécuter vos tests.

Pour les plus aventureux ou ceux qui ont besoin plus que la configuration de base, vous pouvez modifier le fichier de configuration et d'adapter Karma pour répondre à vos besoins. Il y a quatre sections principales du fichier de configuration que vous souhaitez accorder une attention particulière à: préprocesseur, plugins, les navigateurs et les fichiers.

Préprocesseurs vous permettent de faire les choses à votre code avant qu'il ne soit envoyé au navigateur d'avoir les tests effectués sur elle. Karma est livré avec le karma-café et le karma préprocesseurs-html2js déjà installé. Je l'utilise régulièrement le préprocesseur-couverture karma pour me montrer combien de mon code, je l'ai couvert de mes tests. Pour une description complète de ce que toute personne préprocesseur ne vous devriez lire la documentation sur son site Internet.

Alors que Karma est livré avec plusieurs plugins pré-installés, vous devez lui dire ceux que vous voulez utiliser pour l'exécution de vos tests. Il existe des méthodes permettant de déterminer dynamiquement quels plug-ins habituer, ou vous pouvez simplement les énumérer. Si votre projet ne change pas beaucoup par rapport à la façon dont vous testez votre code, la liste statique est la meilleure façon d'aller.

le soutien du navigateur est essentiel pour JavaScript. Karma est livré avec des lance pré-installés pour Chrome, Chrome-Canaries, et PhantomJS. D'autres lanceurs doivent être installés si vous voulez tester votre JavaScript dans d'autres navigateurs. Je teste régulièrement dans Chrome, IE et Firefox. Karma prend soin de capturer et tuer les processus de navigateur pour vous. Cela vous permet de passer plus de temps à développer et moins de temps les processus serviles associés aux tests. Le temps par défaut a permis de capturer un navigateur tout est d'une minute, ce qui devrait être plus qu'assez de temps, mais vous pouvez changer cette valeur via l'option captureTimeout dans le fichier de configuration. Vous aurez également besoin de dire Karma où les fichiers exécutables sont pour tous les navigateurs sauf IE. Si vous voulez capturer votre navigateur manuellement (à partir d'une tablette, par exemple), vous pouvez pointer le navigateur vers http: //<hostname9gt;: 9LT; port9gt; où <hostname9gt; est le nom d'hôte ou l'adresse IP de l'ordinateur où Karma est en cours d'exécution, et <port9gt; est le port que vous avez spécifié dans le fichier de configuration. Par défaut, c'est le port 9876, mais si vous avez changé dans la section du port de votre fichier de configuration puis utilisez ce port.

Vous avez besoin de dire Karma quels fichiers sont nécessaires pour exécuter votre projet, quels fichiers contiennent vos tests, et quels sont les fichiers à tester. Pour plus de commodité, dans mon fichier de configuration je briserai ces fichiers dans leurs groupes respectifs, les fichiers requis d'abord, les fichiers de test, deuxième et fichiers à tester dernière. L'ordre dans lequel ils apparaissent est l'ordre dans lequel ils seront inclus dans le navigateur, donc en fonction de votre projet, vous devrez peut-être prêter attention. Chaque fichier ou groupe de fichiers peuvent être marqués pour être regardé par Karma, inclus dans le navigateur <script9gt; tag et par le serveur Karma. Les fichiers qui sont surveillés peuvent déclencher Karma pour exécuter tous les tests à nouveau, donc accorder une attention particulière à ces derniers. Si vous listez simplement tous vos fichiers, ils seront surveillés, inclus, et servi, ce qui peut entraîner une perte de performance lors des tests sur les anciens, les ordinateurs plus lents.

Karma fonctionne sur NodeJS et la configuration est configuré à l'aide module.exports pour qu'il soit aspiré dans et consommé par NodeJS. Les anciennes versions de Karma n'a pas eu cette fonction, et ils étaient un peu plus difficiles à configurer correctement. Un bon exemple d'un fichier de configuration Karma ressemble à ceci:

Il y a deux principales façons d'exécuter Karma: à la ligne de commande ou via votre IDE. Je suis en faveur fortement en cours d'exécution Karma de mon IDE (WebStorm) parce qu'il me garde sur le même écran plus. Quelle que soit la méthode choisie, en cours d'exécution Karma effectue les opérations suivantes:

  1. Lance un serveur Web dans le nœud.
  2. Lance les navigateurs spécifiés avec une URL par défaut qui pointe vers ce serveur Web.
  3. Les tentatives pour capturer la session du navigateur dans chaque navigateur.
  4. Lors de la capture de tous les navigateurs, les tests sont effectués et les rapports générés.
  5. Si vous avez choisi de faire rester Karma course et de surveiller les fichiers, chaque fois que l'un de ces fichiers change les tests seront exécutés de nouveau et les rapports regénérés.
  6. Si vous avez opté pour ne Karma courir une fois, chaque session du navigateur est libéré et le navigateur est fermé.

Le test est utile uniquement si vous pouvez voir les résultats, et Karma dispose de plusieurs options. Le journaliste d'avancement est inséré dans le fichier de configuration que le processus d'initialisation crée par défaut. Ce journaliste vous donne une liste complète de chaque test qui est exécuté, dans l'ordre de leur exécution, et si elles passent ou échouent. Le journaliste points est inclus avec le karma pour ceux qui fonctionnent Travis. Il y a d'autres journalistes disponibles sous forme de plugins (grognement, Junit, TeamCity et couverture) qui peuvent aider à rendre votre processus de test plus facile et plus complète. Chaque journaliste doit figurer dans la section reporters du fichier de configuration, et certains journalistes (comme le journaliste de couverture) exigent qu'ils soient référencés dans la section préprocesseurs ainsi. Le journaliste de couverture qui est inclus avec Karma est Istanbul et je l'ai trouvé très bien adapté à mes besoins et à utiliser avec Karma.

Une partie de la beauté du Karma est la facilité avec laquelle il peut être intégré à votre IDE. Presque tous ont IDEs un moyen d'ajouter un outil externe qui est lancé sur la ligne de commande. Configuration WebStorm 6 et plus pour exécuter Karma comme un outil externe est couvert dans la vidéo d'introduction que le créateur (Vojta Jina) Publié via YouTube (http://www.youtube.com/watch?v=MVw8N3hTfCI) et se trouve à la marque 7:39 dans la vidéo. Il existe un lien pratique pour cette partie juste au-dessous de la vidéo. Il y a aussi l'intégration intégrée dans le WebStorm à venir 7 (actuellement accessible via le programme Early Access.) Il a été mon expérience que l'intégration avec WebStorm produit un excellent environnement de développement. Prise en charge de la configuration des outils externes ne se limite pas aux produits de JetBrains. Visual Studio 2008 ou plus récent dans toute la saveur, sauf les versions Express vous permettra de configurer des outils externes pour lancer à partir du menu (vous devez créer un fichier de commandes avec la condition des commandes Karma et dire VS de lancer ce fichier.) Sublime est également un éditeur de texte a largement favorisé pour le développement web, et il prend en charge également des outils externes. Tant que votre IDE privilégié prend en charge les outils externes d'une certaine façon, vous devriez être en mesure de lancer Karma et le faire exécuter des tests.

La grande majorité de ce que vous avez besoin de se lever et en cours d'exécution avec Karma est contenu dans le site Karma. La plupart de toute autre question peut être répondue en recherchant le groupe Google ou de poster une question sur le débordement de pile. Documentation pour les plug-ins individuels sera trouvé avec ces plug-ins. Pour tout ce qui ne relève pas, le groupe Google est la meilleure ressource pour essayer d'abord, et le débordement de pile est un très proche seconde.

Un grand nombre de développeurs ne testent pas leur JavaScript, et ils devraient vraiment. Un trop grand nombre d'entre eux pensent que le test est difficile à mettre en place et difficile à faire, et Karma est la preuve du contraire. Mon équipe et j'utilise Karma avec Jasmine tous les jours de la semaine. Nous avons trouvé l'installation et la configuration pour être rapide et facile à suivre. Nous sommes passés de téléchargement NodeJS à des tests en cours d'exécution via Karma en moins d'une heure. Quand vous considérez que mon équipe et moi étions totalement nouveau pour les tests, et encore moins JavaScript tests, cela est assez impressionnant. Nous avons choisi Karma parce qu'il y avait un soutien pour AngularJS sans aucune modification de configuration, et parce que cela nous permettra de tester nos autres scripts aussi bien. Dans chacun de ces domaines, il a excellé dès le premier jour # 1. Nous préparons maintenant pour faire avancer notre projet Yeoman et ne pas avoir peur de la façon dont nos tests fonctionneront parce que Yeoman soutient pleinement Karma. Nous croyons fermement que nous ne aurions pu choisir un meilleur outil pour inclure dans nos routines quotidiennes.

Karma est le coureur de test préféré pour des projets écrits avec AngularJS et est en bonne voie à l'acceptation plus grande au sein de la communauté en JavaScript. Son architecture de plug-in rend facilement adaptable à d'autres suites de tests et journalistes, tous ajoutent de la valeur au cœur du Karma. Dans les environnements d'intégration agile ou continue, Karma brille comme un outil indispensable pour les équipes de développement, offrant un moyen facile et fiable pour modifier le code existant et de l'artisanat nouveau code dans le cadre de TDD. Il est rare qu'un jour passe sans que cet outil en cours d'exécution sur mon ordinateur.


Test Unité angulaire de démarrage rapide

Pourquoi fais-tu ça?

Angulaire a été écrit à partir du sol pour être testables et pourtant il y a des dizaines de tests développeurs angulaires qui ne sont pas en train d'écrire assez (le cas échéant) pour leur application. Pourquoi est-ce? Je crois qu'il est parce que lors du test angulaire est facile, en fait à obtenir cette première étape est difficile. Je me souviens du sentiment de désespoir, je sentais la première fois j'ai été chargé des tests d'écriture pour un projet que j'étais. Où est-ce que je commence? Comment puis-je obtenir cette chose Karma fait courir? Trouver mes fichiers? Comment puis-je instancier mon contrôleur? Et si elle a une dépendance de service? Aaaaaaaaargh!

J'ai depuis couvert beaucoup de terrain au cours des deux dernières années et j'ai trouvé qu'une fois que vous comprenez quelques règles de base de l'engagement que le test dans angulaire est en fait assez en avant et stéréotypée droite.

Je voulais essayer d'illustrer certains de ces modèles de base dans un format facile à lire, manière accessible afin que les développeurs peuvent arriver à ce premier test sans perdre leur esprit

S'il vous plaît utiliser ce matériel comme un pont pour faire des tests d'une partie naturelle de votre processus de développement; et si vous trouvez quelque chose de mal, ne pas hésiter à créer une demande de traction sur le repo. Rien ne me rendrait plus heureux! Prendre plaisir!

Où puis-je voir les tests réels?

Le référentiel d'accompagnement pour ce guide de démarrage rapide peut être trouvé ici https://github.com/simpulton/angular-testing-quick-start

Comment Karma diffère Protractor?

J'aime diviser mes tests en trois catégories différentes:

  1. Tests de bout en bout - Ce sont les essais où vous voulez imiter un utilisateur réel qui visite votre site. Chaque test contient une série d'événements utilisateur simulés (ex. Aller à http://mysite.com/home puis cliquez sur le bouton avec ID « my-bouton ») et les résultats attendus (ex. Après 200ms une nouvelle fenêtre devrait apparaître ça dit "Je vous remercie").
  2. Tests d'intégration - Ces tests appelleront directement dans votre code. Par exemple, vous pouvez utiliser un test d'intégration pour appeler un service angulaire. En règle générale chaque test se concentrera sur une fonction. Le test appelle la fonction cible avec un ensemble de paramètres, puis vérifie que les résultats correspondent les valeurs attendues.
  3. Tests unitaires - Ceux-ci sont les mêmes que les tests d'intégration, à l'exception que vous prenez des mesures supplémentaires toensure que rien est exécuté en plus d'une fonction que vous testez. Par exemple, lorsque vous testez un service qui utilise http $ pour appeler une API de back-end, un test d'intégration comprendrait l'appel d'API. Un test unitaire, cependant, utiliserait un utilitaire que nous discuterons plus tard appelé httpBackend $ pour remplacer http $ afin que le code exécuté par le test est limité à seulement la fonction cible.

Est l'outil protractor vous utiliserez pour les tests de bout en bout tout en poignées Karma intégration et tests unitaires.

Comment puis-je installer Karma?

Comment ne sait Karma fichiers à inclure?

Après avoir installé Karma, nous avons besoin de mettre en place le fichier karma.conf. Le tableau de fichiers karma.conf contient tous les fichiers nécessaires à l'exécution d'un test. Ceci comprend:

  • Toutes les bibliothèques angulaires utilisées par votre code
  • Tout votre code personnalisé
  • Tous vos spécifications de test

Ci-dessous un exemple d'un fichier karma.conf complet.

Notez que la plupart des valeurs dans le fichier karma.conf peuvent être remplacés à la ligne de commande. Par exemple, si vous voulez exécuter Firefox au lieu de Chrome, vous pouvez soit changer la valeur karma.conf ou conserver la valeur même et utilisez cette commande:

Je vous suggère fortement de prendre un fichier existant karma.conf comme celui-ci et l'adapter pour répondre à vos besoins. Tant que vous suivez les conventions que nous décrivons dans ce guide, les seules choses que vous voudrez probablement changer sont:

  • fichiers - pour inclure tous vos codes personnalisés, les dépendances et le code de test
  • journalistes - si vous voulez une couverture de test, vous devez inclure le journaliste « de couverture »
  • Autowatch et singleRun - la plupart du temps vous voulez Autowatch = true et singleRun = false de sorte que Karma réexécuter automatiquement vos tests que vous apportez des modifications. Toutefois, si vous utilisez Karma dans le cadre d'un script comme un crochet git ou intégration continue, alors vous voulez retourner ces deux valeurs booléennes de sorte que Karma ne fonctionne que les essais une fois.

Comment est une spécification de base organisée?

En général, vous voulez avoir un fichier de test pour chaque fichier de code non-test dans votre application. Vous devriez avoir un schéma de nommage commun afin que vos outils de construction et les coureurs de test peuvent choisir les fichiers de test à partir de fichiers non-test. Nous utilisons l'un des schémas de nommage des fichiers de test les plus courantes: ".spec.js". Donc, si vous avez un fichier de code appelé "app.js", Le fichier qui contient tous les tests pour app.js serait appelé "app.spec.js". Vous verrez souvent tous les fichiers de test dans un répertoire distinct du reste du code (généralement appelé « test »), mais dans l'exemple de code, nous avons mis tous les specs droite le long du côté du code qu'ils testent pour votre commodité.

Spec Code Structure

En général, vos fichiers de spécifications devraient suivre cette structure:

Deux choses à noter dans cet exemple.

Tout d'abord, vous devez utiliser libéral auparavant, beforeeach, après et afterEach de mettre en place et abattez le contexte approprié pour les tests. Idéalement, vous avez seulement des lignes de code couple dans chaque il() fonction.

La deuxième chose à noter est que le premier paramètre pour la décrire() et il() fonctions peuvent être utilisées par le coureur de test lorsque les tests sont exécutés. Par exemple, lorsque cette spécification est exécuté, certains coureurs de test peut émettre:

Donc, assurez-vous que les valeurs de chaîne sont descriptives.

Comment puis-je injecter un module dans une spécification?

La première chose que votre spec devrait faire est de définir tous les modules angulaires qui sont nécessaires pour les tests dans cette spécification. Cela se fait à l'aide du module() fonction qui vient de la angulaire mocks bibliothèque. Par exemple:

Ce code permettra à la spécification pour tester le code de la myApp module. Il est préférable d'utiliser beforeeach () au lieu de simplement avant() de sorte que chaque test est essentiellement en cours d'exécution à partir d'une feuille blanche. Si vous ne le faites pas, l'état d'un test précédent peut saigner dans un autre test et affecter les résultats.

Comment puis-je instancier un contrôleur dans une spécification?

Voici notre contrôleur que nous voulons tester:

le angulaire mocks bibliothèque fournit un service appelé contrôleur $ que nous pouvons utiliser pour nous aider à tester nos contrôleurs. dans le beforeeach () ci-dessous, nous injectons contrôleur $ ainsi que toutes les autres dépendances nous devons instancier notre contrôleur.

Notez que nous utilisons la syntaxe underscore avec _Messages_ pour obtenir une référence mondiale à la Messages un service. Les underscores sont ignorés par l'injecteur lorsque le nom de référence est résolu.

Comment puis-je injecter un service dans une spécification?

Test d'un service angulaire est un morceau de gâteau. Vous pouvez utiliser le injecter() fonction de simulacres-angulaires pour obtenir une référence à des objets internes de base angulaire ou l'un de vos objets personnalisés dans les modules qui sont définis dans la partie supérieure de la spécification. Par exemple:

En tant que meilleure pratique, nous proposons des objets par voie intraveineuse dans beforeeach () et sauver l'objet à une variable locale. Ensuite, dans le test que nous référençons juste que variable locale.

Comment puis-je tester si un élément est dans les DOM?

La chose la plus difficile à tester avec angulaire est le code dans les modèles. Voilà pourquoi vous devriez essayer de réduire la quantité de code dans vos modèles, autant que possible. Même si vous êtes vraiment bon à ce sujet, cependant, vous aurez toujours un code de modèle que vous souhaitez tester.

Vous pouvez diviser le test modèle en deux catégories. La première catégorie comprend des modèles qui ne disposent pas des contrôleurs, ou comprend des instructions personnalisées. Essentiellement, vous êtes juste logique tester qui utilise des expressions angulaires de base et directives essentielles angulaires. Ce cas d'utilisation est relativement facile à tester. Prenons l'exemple suivant:

Nous voulons avoir accès à ce fichier HTML dans nos tests, mais il est généralement une mauvaise idée de faire un appel http au sein de vos tests si vous pouvez l'éviter. Heureusement, il existe une fonctionnalité intéressante dans le Karma qui nous permet de emballons automatiquement tous nos fichiers de modèle HTML dans un module angulaire que nous pouvons accéder facilement à nos tests. Il suffit d'ajouter ce qui suit à votre karma.conf.js fichier:

Cela empaqueter automatiquement tous les fichiers se terminant par .html au sein de votre src / dossier dans un module angulaire appelé myAppTemplates. Chaque modèle est accessible en utilisant le $ templateCache un service. Vous pouvez pouvez tester ce modèle simplement en injectant le compiler $ le service avec des données de test, puis vérifier le code HTML résultant:

La deuxième catégorie de tests de modèle est malheureusement plus complexe. Nous devons traiter les dépendances au sein du modèle ou entourant le modèle tel qu'un contrôleur, le routeur de l'interface utilisateur, directives, etc. Examinons un exemple d'un cas d'utilisation plus complexe qui comprend un état du routeur interface utilisateur et un contrôleur:

Afin de tester le modèle et le code de contrôleur associé, il faut instancier le contexte du contrôleur et ses environs. À cette fin, nous avons créé une fonction d'assistance appelée compileRouteTemplateWithController qui fait tout nous avons besoin.

Nous utilisons cette fonction d'assistance pour obtenir toutes les dépendances dont nous avons besoin pour exécuter nos tests. Cela inclut la création de champ d'application, un dispositif de commande et une fonction de rendu. Ne hésitez pas à utiliser et l'adapter à vos besoins. En outre, en aparté, chaque fois que vous voyez beaucoup de code répétitif dans les vos tests, assurez-vous de créer vos propres fonctions d'aide.

OK, maintenant, nous avons tout mis en place pour tester notre modèle.

La partie clé de ce test a été l'utilisation de la fonction d'assistance pour instancier le modèle et toutes les dépendances nécessaires:

Comment puis-je tester des changements d'itinéraire?

Test d'un itinéraire signifie essentiellement des tests que nous avons configuré correctement le routeur de l'interface utilisateur de stateProvider $ au cours de la phase de configuration. Par exemple, compte tenu de la configuration de l'état suivant:

Notre stratégie de base pour les tests est d'utiliser la state.go de $ () et state.href de $ () méthodes pour modifier l'état actuel, puis assurez-vous que l'itinéraire est modifié de façon appropriée.

Comment puis-je configurer une spécification pour une directive?

Semblable à la façon dont nous testons un modèle, nous utilisons le service de compilation $ pour nous aider à tester une directive. La clé est de passer dans un code HTML à compiler $ () qui fait référence à la directive cible. Par exemple, si vous aviez une directive élément appelé « expérience », vous appelez simplement compiler $ ("&# 60; expérience&# 62;&# 60; / expérience&# 62;"). Vous pouvez voir l'exemple complet ici:

Remarque: en fonction de ce que votre directive ne, vous devrez peut-être modifier le code HTML passé dans compiler $. Par exemple, si la directive prévoit que d'autres attributs de l'élément ou si vous testez une directive avec transclusion (dans ce cas, vous voulez mettre différents extraits de HTML que les enfants à l'élément qui a la directive).

Comment / Pourquoi je me moque un appel de service dans une spécification du contrôleur?

Nous avons mentionné au début que vous pouvez créer à la fois des tests unitaires et tests d'intégration avec Karma. Lorsque vous écrivez un test unitaire, votre objectif est de tester une seule chose et éliminer ou se moquer de toutes les autres dépendances. En général, vous pouvez se moquer de tout objet à travers l'utilisation du fournir $ un service. Vous utilisez ce service lorsque vous définissez le module que vous utilisez dans vos spécifications. Par exemple:

Dans ce cas, nous prépondérants l'objet SimpleService. Une fois que nous faisons cela, tout code qui injecte SimpleService obtiendra notre objet fantaisie au lieu de la SimpleService réelle.

Il y a un cas particulier avec moqueuse où angulaire vous aide. Chaque fois que vous utilisez $ http pour faire un appel à distance, angulaire a un autre service dans les coulisses appelées $ httpBackend cela ne fait tout le travail. La bibliothèque angulaire se moque a sa propre version de $ httpBackend avec un certain nombre de goodies pour nous aider à se moquer de des appels à l'arrière. Par exemple regarder ce code qui fait un $ http appel:

Si nous appelons getExperiments () dans notre test, il fera une demande http réel aux données / experiments.json. Nous pouvons intercepter cet appel avec $ httpBackend, cependant, et définir ce qui doit être retourné au lieu de faire un appel à distance.

Notez que $ HttpBackend.flush () est nécessaire parce que normalement $ http est asynchrone, mais nous voulons exécuter notre test de façon synchrone. L'appel à affleurer() veillera à ce que la .puis() la promesse de retour de $ http sera exécutée immédiatement.

Comment puis-je déterminer si une méthode appelle avec succès une autre méthode?

Comment puis-je déterminer quels arguments ont été inclus quand je l'appelle une méthode?

Jasmine utilise un espion pour déterminer si une méthode a été appelée et / ou quels arguments sont mis en un appel de méthode. Ainsi, par exemple:

Un espion existe que dans les décrire() ou il() fonction où il a été défini.

En plus de voir simplement si un espion a été appelé, on peut aussi définir quelle valeur l'espion doit retourner (à l'aide returnValue ()) ou quelle fonction fausse l'espion doit fonctionner au lieu de la fonction cible (en utilisant callFake ()). Par exemple:

Comment gérer les opérations Async une spécification?

Par défaut, chaque test fonctionne de manière synchrone. Donc, si vous avez une opération asynchrone, le test se termine avant l'opération terminée. Il y a plusieurs façons de traiter les cas d'utilisation spécifiques (par exemple $ HttpBackend.flush () comme mentionné plus haut), mais vous pouvez également utiliser le Jasmine terminé() fonction. Par exemple:

Dans cet exemple, le test ne sera pas terminée tant que terminé() est appelé. Si terminé() contient un paramètre, Jasmine traite que comme une erreur et ne satisfait pas au test.

Une dernière note sur les opérations asynchrones. Vous avez peut-être remarqué dans nos exemples un appel à rootScope $. digérer $ (). Cela forcera le cycle condensé pour exécuter ce qui est nécessaire chaque fois que nous testons quoi que ce soit athat implique les observateurs (donc, quoi que ce soit avec des modèles).

Comment puis-je résoudre les problèmes avec mes spécifications?

le code Spec est exécuté dans le navigateur comme tout autre code côté client. Alors, comment déboguer-vous votre application angulaire? C'est vrai, les outils de dev Chrome / FireFox. Par exemple, après l'exécution de Karma avec Chrome il devrait y avoir une fenêtre ouverte Chrome sur votre machine qui contient la sortie du test. Pour le débogage, il suffit d'ouvrir les outils de dev Chrome et rafraîchir la page.

Comment puis-je sais que je suis formatage mes specs de la manière la plus efficace?

Voici une liste rapide des meilleures pratiques. Certains d'entre eux nous en avons parlé plus tôt.

  • Utilisation beforeeach () de mettre en place le cadre pour vos tests.
  • Assurez-vous que les descriptions de chaîne que vous mettez dans décrire() et il() logique en sortie
  • Utilisation après() et après chaque() pour le nettoyage de vos tests s'il y a un état qui peut saigner plus.
  • Si un test est plus de 10 lignes de code, vous devrez peut-être factoriser le test
  • Si vous vous trouvez en répétant le même code pour de nombreux tests, factoriser le code commun dans une fonction d'aide

Si vous voulez faire un peu plus creuser, voici 6 ressources qui vous initieront.


Installation batailles du film II &# 038; Dépannage tutoriel Guide

Ceci est un guide de profondeur dans l'installation batailles du film II. Ce guide vous expliquera comment installer batailles du film II sur les machines Windows et ordinateurs Macintosh. Écrit par Supa.

Publié par MaceMadunusus le 9 juillet 2010 - Démarrage d'un mod de base

Ceci est un guide étape par étape pour l'installation de batailles du film 2, en utilisant le fichier d'archive &# 40; .zip&# 41; téléchargé à partir du site Web ou ModDB, ou le lanceur téléchargé à partir du site. Il devrait également être un fichier readme inclus dans la version officielle qui a des informations similaires.

Film Battles II Instructions d'installation pour la version CD / DVD de Jedi Academy

Film Battles II nécessite une copie physique de Star Wars Jedi Knight: Jedi Academy fonctionne correctement. Si vous ne possédez pas l'Académie Jedi vous pouvez l'acheter sur Steam pour 10 $ USD (trouvé ici, ce qui inclut le PC et les versions Mac du jeu [si vous choisissez d'acheter sur Steam, vous aurez besoin de faire défiler vers le bas pour les instructions d'installation pour les versions Steam du jeu). Vous devez également être patché à la dernière version du jeu - Mise à jour 1.01 pour les utilisateurs Windows et 1.01e pour les utilisateurs Macintosh. La version Steam de Jedi Academy sera automatiquement mis à jour 1.01 lors de l'installation.

  1. Si vous lisez ceci, cela signifie que vous avez déjà téléchargé de films Battles II.
  2. Naviguez vers le répertoire d'installation de votre jeu. Ce sera différent en fonction de l'architecture de votre système d'exploitation:
    • Sur 32 bits Systèmes d'exploitation: C: \ Program Files \ LucasArts \ Star Wars Jedi Academy Chevalier Jedi \ GameData
    • Sur 64 bits Systèmes d'exploitation: C: \ Program Files (x86) \ LucasArts \ Star Wars Jedi Academy \ GameData
    • Important: Si vous avez installé l'Académie Jedi dans un répertoire différent, vous devrez naviguer à l'endroit où vous l'avez installé et trouver le dossier GameData pour continuer.
  3. Sélectionner tous les fichiers dans le fichier contenant des archives batailles du film II (.zip), et faites-les glisser dans votre dossier GameData, en appuyant sur OK lorsque vous êtes invité. Vous pouvez aussi simplement faire glisser l'intégralité du fichier d'archive dans le dossier GameData et utiliser l'extrait pour fonctionner.
  4. Il y a deux façons remarquables pour exécuter batailles du film 2, sans la version Steam qui nous reviendrons plus loin dans le guide (recherche "Steam TÃ de Jedi Academy"). Exécution du fichier Play_MBII.bat inclus est la meilleure façon. Vous pouvez également créer un raccourci sur le bureau de jamp.exe et ajouter + set fs_game "PMBI" dans le champ cible à la fin du répertoire dans les propriétés du raccourci.

dépannage go Karma

  1. Si vous lisez ceci, cela signifie que vous avez déjà téléchargé le lanceur PMBI.
  2. Naviguez vers le répertoire d'installation de votre jeu. Ce sera différent en fonction de l'architecture de votre système d'exploitation
    • Sur 32 bits Systèmes d'exploitation: C: \ Program Files \ LucasArts \ Star Wars Jedi Academy Chevalier Jedi \ GameData
    • Sur 64 bits Systèmes d'exploitation: C: \ Program Files (x86) \ LucasArts \ Star Wars Jedi Academy \ GameData
    • Important: Si vous avez installé l'Académie Jedi dans un répertoire différent, vous devrez naviguer à l'endroit où vous l'avez installé et trouver le dossier GameData pour continuer.
  3. Sélectionner et déplacer Launcher PMBI dans votre dossier GameData. Il est nécessaire que le lanceur soit dans votre dossier GameData pour le jeu à courir. Une fois que vous démarrez le lanceur appuyez sur le bouton Installer sur le lanceur et il va commencer à télécharger automatiquement. Si vous avez installé l'Académie Jedi sur un autre lecteur que votre système d'exploitation, vous devez vous assurer qu'il est le chemin reconnu dans les paramètres.
  4. Laissez le téléchargement du jeu, et une fois terminé, appuyez sur le bouton de lecture sur le lanceur.

Pour les nouvelles installations de batailles du film II sur un ordinateur exécutant Microsoft Windows en utilisant la version Steam de l'Académie Jedi * Ces instructions nécessitent la version Steam de l'Académie Jedi.

  1. Si vous lisez ceci, cela signifie que vous avez déjà téléchargé de films Battles II.
  2. Naviguez vers le répertoire d'installation de votre jeu. Ce sera différent en fonction de l'architecture de votre système d'exploitation:
    • Sur 32 bits Systèmes d'exploitation: C: \ Program Files \ Steam \ steamapps \ common \ Jedi Academy \ GameData
    • Sur 64 bits Systèmes d'exploitation: C: \ Program Files (x86) \ Steam \ steamapps \ common \ Jedi Academy \ GameData
    • Important: Si vous avez installé l'Académie Jedi dans un répertoire différent, vous devrez naviguer à l'endroit où vous l'avez installé et trouver le dossier GameData pour continuer.
  3. Sélectionner tous les fichiers dans le fichier contenant des archives batailles du film II (.zip), et faites-les glisser dans votre dossier GameData, en appuyant sur OK lorsque vous êtes invité. Vous pouvez aussi simplement faire glisser l'intégralité du fichier d'archive dans le dossier GameData et utiliser l'extrait pour fonctionner.
  4. Pour lire des films Battles II< vous devrez définir les options de lancement spécifiques. Faites un clic droit sur l'Académie Jedi dans votre bibliothèque Steam et sélectionnez Propriétés. Vous devriez voir un bouton Définir les options de lancement. Sélectionnez cela, et dans le champ de texte copier et coller + set fs_game "PMBI". Chaque fois que vous commencez à l'Académie Jedi multijoueur via Steam, il se charge automatiquement Movie Battles II. Si vous voulez exécuter la base, ou une autre modification, vous devrez supprimer ou modifier les options de lancement.

dépannage go Karma

  1. Si vous lisez ceci, cela signifie que vous avez déjà téléchargé le lanceur PMBI.
  2. Naviguez vers le répertoire d'installation de votre jeu. Ce sera différent en fonction de l'architecture de votre système d'exploitation:
    • Sur 32 bits Systèmes d'exploitation: C: \ Program Files \ Steam \ steamapps \ common \ Jedi Academy \ GameData
    • Sur 64 bits Systèmes d'exploitation: C: \ Program Files (x86) \ Steam \ steamapps \ common \ Jedi Academy \ GameData
    • Important: Si vous avez installé l'Académie Jedi dans un répertoire différent, vous devrez naviguer à l'endroit où vous l'avez installé et trouver le dossier GameData pour continuer.
  3. Sélectionner et déplacer Launcher PMBI dans votre dossier GameData. Il est nécessaire que le lanceur soit dans votre dossier GameData pour le jeu à courir. Une fois que vous démarrez le lanceur appuyez sur le bouton Installer sur le lanceur et il va commencer à télécharger automatiquement. Si vous avez installé l'Académie Jedi sur un autre lecteur que votre système d'exploitation, vous devez vous assurer qu'il est le chemin reconnu dans les paramètres.
  4. Une fois le jeu terminé le téléchargement et que vous avez changé les réglages ci-dessus, appuyez sur la « Play9rdquo; bouton sur le lanceur.
    • Si vous rencontrez un problème en cours d'exécution PMBI par le lanceur, il est fort probable parce que vous n'avez pas installé Jedi Academy dans le répertoire par défaut. Si tel est le cas, vous devez aller dans les paramètres du lanceur, et changer l'option Exécuter jeu en utilisant: pour PMBI client au lieu de JAMP, ou lancer le jeu directement via Steam en utilisant les paramètres de lancement comme décrit dans l'installation d'archives, si vous voulez avoir la superposition de vapeur.

Guide pour les nouvelles installations de batailles du film II sur un Macintosh. * Nécessite une copie physique de la version Macintosh de l'Académie Jedi, et peuvent être achetés dans le magasin Mac, ainsi que le magasin de vapeur.

  1. Accédez à votre dossier de bibliothèque à domicile, en utilisant le "Aller" le menu du Finder tout en appuyant sur la "alt" clé.
  2. Aller à "Support d'application".
  3. Ensuite, en fonction de la version de jka vous utilisez ouvrez le dossier:
    • "Jedi Academy" : Pour la version Steam
    • "Jedi Academy MP" : Pour la version CD
    • "OpenJK" : Pour la version OpenJK
  4. Sélectionnez le dossier contenu dans PMBI Film Battles II fichier .zip, et faites-le glisser dans le dossier précédemment identifié (au point 3). Il doit y avoir seulement un dossier PMBI avec tous les fichiers. Si vous avez un zip contenant un patch ne remplace pas l'intégralité du dossier, mais remplacer le contenu dans ce dossier PMBI.
  5. Il y a plusieurs façons d'exécuter PMBI sur un Mac:
    • Sur les correctifs précédents (1.01c / d), vous pouvez maintenir changement pendant l'exécution Jedi Academy MP et tapez « + set fs_game PMBI »
    • Alternativement pour le correctif le plus récent (1.01e) et la version à vapeur, Redsaurus nous a fourni une application pour Mac qui lance directement à PMBI, JKJALauncher.app (vous pouvez télécharger ce ici ou ici). Vous aurez besoin de lancer la première fois en maintenant la touche Maj enfoncée pour le configurer en ajoutant "+ Set fs_game PMBI" dans sa configuration.
  6. Prendre plaisir!

Note importante: JKJALauncher.app comprend un auto-updater pour le lanceur.

Informations importantes avant de vous joindre un serveur Comme pour tout jeu, il est important que vous exécutez à travers les paramètres et commandes avant de vous joindre à un jeu.

Réglages: Réglages vidéo (écran large) pris en chargedépannage go Karma

Réglages: écran large Options de supportdépannage go Karma

Paramètres: Paramètres réseau importantsdépannage go Karma

Contrôles: Divers Fixations d'armesdépannage go Karma

Contrôles: Film Batailles desliaisons spécifiquesdépannage go Karma

Contrôles: Power Force Fixationsdépannage go Karma

Contrôles: Désactivation de l'enregistrement démo automatiquedépannage go Karma

Informations de dépannage

Les utilisateurs de vapeur: Pour exécuter PMBI, suivez les instructions du Guide d'installation. Play_MBII.bat situé dans le dossier GameData ne fonctionne pas avec la version Steam de l'Académie Jedi.

Erreur: Erreur: Erreur MAX_QPATH

Solution: Supprimer mb2_rc_hangarc.pk3 de votre dossier PMBI.

Erreur: Client Mac plantage inexpliqué

Solution: Désactiver EAX dans les options sonores, il peut résoudre tous les problèmes de plantages inexpliqués.

Erreur: Crash inexpliqué de bureau au démarrage

Erreur: Modèles tenant les bras

Solution: Si tout est correctement installé, mais vous obtenez toujours la "Jésus Stance" animation, copiez le fichier z_MB_BaseAssets.pk3 de votre dossier PMBI dans le dossier de base.

Erreur: OpenGL sous-système / VM_Create sur l'interface utilisateur n'a pas d'erreur

Solution: Mettez à jour vos pilotes DirectX. (Télécharger DirectX ici: Support.microsoft.com)

Erreur: Erreur de chargement de l'application 5: 0000065434

Solution: Cela se produit si vous utilisez la version Steam de l'Académie Jedi et il est pas installé dans le même répertoire que le client Steam. Vous aurez besoin de changer la façon dont le lanceur PMBI exécute le jeu. Accédez aux paramètres du lanceur et où il est dit Run jeu en utilisant: changer pour que PMBI Client et l'intégration untick à vapeur. Sinon, vous pouvez lancer le jeu via Steam en réglant les paramètres de lancement.


27 Résultats PDF et mise à jour: 23/08/2017 10:59:12

plane en place chaque fois que vous lâchez les joysticks. ATTENTION: . Le bouton d'éclairage et les feux d'orientation sur les bras tournent lorsque Karma est mis hors tension.

[PDF] Guide réincarné M3 - Karma-Lab

Si vous trouvez que cela vous cause d'aller outre le rythme trop, ou que vous rencontrez des difficultés à les jouer de cette façon, la solution est facile:. KARMA dos,.

[PDF] Guide de l'utilisateur utilisateur - AT&T Communications sans fil

karma ™ QA1 utilisateur Certains. Pour en savoir plus, allez à www.motorola.com/mykarma. . † † Témoins de chargement ATS Configuration † † Parchemin † Faites glisser Fermé de Marquee Texte.

[PDF] GRIP - GoPro Site Officiel - Capturer

État de la batterie T Lumières&# 233; d Moins »&# 233; tat de la batterie Luces de Estado de la bater&# 237; un port de charge. sumerja el Karma Grip en agua ni lo exponga un l&# 237; quidos,.

[PDF] LA LUMIÈRE DE - selfdefinition.org

aller de l'avant parce que vous n'êtes pas sûr de la r ight. la lumière des lumières au-delà de toutes les ténèbres. Yoga Karma, dévotion: Bhakti Yoga,

[PDF] Foire aux questions et réponses Ghia Specifics.

Foire aux questions et réponses Q Do Karmann Ghia et scarabées partagent les mêmes mechanicals? A Oui, cela couvre la poutre, la transmission et le moteur.

[PDF] « NIGHT LIGHTS VENDREDI » STAR ALICIA WITT STARS COMME ...

« NIGHT LIGHTS VENDREDI » STAR ALICIA WITT STARS EN BRIDE OMS. ("Les lumières du vendredi soir") . ( « Sweet Karma »), Scott Gibson.

[PDF] Terres Mystic: Varanasi: Ville Lumière - Discovery Education

Terres Mystic: Varanasi: Ville de lumière: Guide de l'enseignant. • Qu'est-ce que le karma,. Les hindous peuvent aller à ashrams tout moment de la journée pour le culte.

[PDF] façons de laisser votre Karma - wisdomheart.com

50 façons de quitter votre Karma. . avancer ensemble, il est important d'aller au-delà de la surface et se connecter à ce qui est plus profond. . votre insula allume.

[PDF] Zung du Exalté complètement pur Lumière inoxydable

Zung du Exalté complètement pur Lumière inoxydable. Si vous récitez le mantra de tous les jours, puis aller à la ville ou où il y a. etc., leur karma négatif

[PDF] VOYAGE AVEC LA LUMIÈRE VIRIDIAN

Viridian achète des crédits carbone au nom de nos membres Lumière Voyage et leur Karma. est la façon responsable de. les lumières pour un jour.

[PDF] Karma - ReplayTV: Soutien à la clientèle Accueil

Les voyants de liaison sur le port Ethernet de la station d'accueil s'allument et clignotent. Karma chaque fois qu'il est connecté à un câble USB pour une longue période. 7 Passez à l'étape 2.

[PDF] OASYS clavier KARMA Cubase Enregistrement des notes 01sk

OASYS clavier KARMA Enregistrement des notes. comme vous pouvez restaurer les pistes d'un seul coup,. (Même pensé KARMA On / Off et les lumières Loquet restent allumés).

[PDF] Le Karma et - SRI - Sept Institut Ray

Le Karma et Dharma des individus, des nations,. qui vont sortir dans l'espace sans fin. . ignorer les feux de circulation, surestiment

[PDF] KARMA & DANS LE VIDE YOGA SUTRA - World-View

presque toutes les lumières éteintes,. vous mettez un poids de plomb sur la soie et vous allez dans le. Karma & Dans le Emptiness Yoga Sutra:.

[PDF] Auteur Buzz Bissinger discute LeBron, sports de la jeunesse et.

Auteur Buzz Bissinger discute LeBron, sports de la jeunesse et Friday Night Lights. LeBron a décidé de ne pas aller dans une école secondaire publique à prédominance noire

[PDF] Karma et Réincarnation - Le Phare de Summit

Karma et Réincarnation. et ce que les grandes lumières de l'Est et de l'Ouest. émissaires qui représenteront e e Brotherhood et qui sortirai

voyage sur la route avec la Fisker Karma,. feux d'avertissement allumés sur le tableau de bord a. a déclaré la lumière chapeau de gaz irait quand

[PDF] Le Centre des cadeaux des Lumières

Karma-La loi de priere de. New Lights Warner. Le but de la réincarnation est de fournir l'occasion pour l'homme de continuer à travailler sur toute sa

[PDF] Rio Karma - ReplayTV: Soutien à la clientèle

Le Karma Rio peut être laissé dans la station d'accueil pour étendu. Les voyants de liaison sur le port Ethernet accueil statio n s'allument et clignotent. 7 Passez à l'étape 2.

[PDF] La guérison des classes - Starr Fuentes

Géométrie des lumières. . Coupons Karma. Letting Go. Les grèves éclaircissant. Chaussures de sport: Worn Plus vite je vais, plus il prend des cours de guérison

[PDF] Karma-Is-Chemistry.pdf - durgayoga.com

karma est la chimie. mai 2009. . nivelé beaucoup de gens que je connaissais. Pour moi, Go-. que Dieu est un neuropeptide. par la plupart des gens lumières,.

[PDF] Dépannage d'un chargeur non - Véhicules eGO

Dépannage d'un chargeur non Révision: 04/02/04 Symptôme:. Si les voyants lumineux N'éclairez le chargeur a échoué et doit être remplacé.

[PDF] Clignotant Commutateur / danger Commutateur de câblage - Vieux Volks Accueil

CLIGNOTANTS Commutateur / danger Câblage du commutateur. Feux de stationnement w / Sidemarker. Ignorer ceux-ci, mettre fin aux extrémités avec du ruban électrique et cravate zip de la route.

[PDF] Bomb Squad Trooper Umiddelbar Karma en Australie Belize.

Australie Umiddelbar Karma de trigonométrie Radiant en Australie Fantasia de lumières ct hartford. applications Android Umiddelbar Karma Go sms bulle match pro android de.

[PDF] Livres à partager avec plaisir et chansons comptines

par Karma Wilson Oh, oui, je le vois! Splendiferous Noël par Jane O'Connor. vers d'autres: lumières / aller sur et en dehors; pop-corn / bon à manger; étoiles / sur le dessus.

[PDF] Pb 500h Manuel d'utilisation - freepdfbookz.com

lumières télécharger pdf gratuitement. app avantages sociaux cvs café café diy diy Craigslist a besoin harrisburg terrestre un karma roman problèmes de crédit dizzycats aller.