50 votes

Pourquoi mes tests AngularJS, Karma / Jasmine fonctionnent-ils si lentement?

J'ai quelques tests unitaires simples de karma / jasmin qui fonctionnent contre une application angularjs. J'utilise la dernière version de Chrome et exécute mes tests à partir de l'EDI WebStorm.

Parfois, la suite de tests s'exécute très rapidement (0,24 seconde)

Parfois, la même suite de tests contre exactement le même code s'exécute très lentement (120 secondes)

J'ai essayé tous les correctifs de bon sens. J'ai parcouru le Web pour essayer de découvrir ce que je faisais mal.

Pourquoi mes tests se déroulent-ils si lentement?

119voto

biofractal Points 3907

La réponse s'avère être très simple.

Je suis en utilisant google Chrome pour exécuter le karma serveur. Lorsque vous commencez le karma serveur une instance de Chrome est lancé comme une fenêtre maximisée. Alors, naturellement, vous minimiser ce que vous pouvez voir vos tests en cours d'exécution.

Le problème, c'est que Chrome prive de toute minimisés ou secondaires onglets commutées (onglets) de cycles de PROCESSEUR.

Par conséquent, si vous réduire le navigateur instance en cours d'exécution le karma serveur, ou tout simplement passer à un autre onglet, puis le karma serveur est sévèrement de la CPU et les tests prennent du temps.

La solution est simplement de garder le karma instance de navigateur disponible. La fenêtre peut être caché derrière d'autres fenêtres, mais le karma onglet doit être active et le navigateur ne doit pas être minimisé. Les tests seront toujours courir vite (très vite).

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