2009-09-16 10 views
2

J'ai un hideux et javascript plutôt gros fichier que j'ai hérité d'un dev je déteste. Il y a beaucoup de code mort, et je trouve que j'ai passé beaucoup de temps à refactoriser des fonctions qui ne sont même pas appelées.JavaScript Code outil de couverture pour IE

Idéalement, je veux juste quelque chose qui peut lier dans le moteur js et garder une trace de quand et combien de fois les fonctions sont appelées.

Dans FF, je peux obtenir une liste des fonctions en promenant l'objet de la fenêtre, et les encapsuler dynamiquement dans une méthode qui consignerait l'appel à eux, puis appeler la fonction comme d'habitude.

Malheureusement, dans IE, je ne peux pas utiliser cela car je n'arrive pas à trouver un moyen d'obtenir une liste de toutes les fonctions qui ont été chargées. Et je ne peux pas exécuter cette application en FF, car c'est horriblement spécifique au navigateur. Au dernier décompte, il y avait 138 lignes contenant "new ActiveXObject (...)"

Aide, soit avec un outil qui peut le faire, ou à tout le moins, un moyen d'obtenir une liste des fonctions que IE7 a chargé à partir du script utilisateur.

Merci -c

Répondre

4

Essayez JSCoverage. JSCoverage est un outil qui mesure la couverture de code pour les programmes JavaScript. JSCoverage fonctionne en instrumentant le code JavaScript utilisé dans les pages Web. Les statistiques de couverture de code sont collectées tandis que le code JavaScript instrumenté est exécuté dans un navigateur Web. L'instrumentation peut être effectuée à la volée si vous configurez JSCoverage Server pour qu'il s'exécute en tant que proxy HTTP et configurez votre navigateur pour le parcourir.

Une façon de l'utiliser est:

  1. Lancement JSCoverage Server en mode proxy:
jscoverage-server --proxy --verbose
  1. Configurez votre navigateur pour utiliser localhost: 8080 comme proxy HTTP.
  2. Ajouter le bookmarklet suivant, en vous assurant le chemin par rapport à jscoverage est correcte:
javascript:void(window.open('jscoverage/jscoverage.html'))
  1. Exécutez vos tests.
  2. Exécutez le bookmarklet. Il fera apparaître une nouvelle fenêtre qui vous montrera les résultats de la couverture.
+0

Je n'arrivais pas à comprendre comment l'utiliser avec ce système. Il est plein de cadres et ajax. – CaffGeek

+0

J'ajouterai plus de détails à ma réponse. –

+0

On dirait que cela fonctionnerait, malheureusement, je ne peux pas changer les paramètres de proxy de mon navigateur ... nous sommes assez verrouillés ici. – CaffGeek

Questions connexes