Nous avons une application déployée sur JBoss 5.1, JDK 1.6. Nous avons également des scripts écrits dans PowerShell pour tester. Ces scripts accèdent à l'application à l'aide d'un service Web. P>
Je voudrais vérifier la couverture du code des scripts. Des idées? La plupart des outils que j'ai vus vérifient un Couverture de test JUnit et je ne vois pas comment nous peut les utiliser. p>
4 Réponses :
J'utilise EMMA Outil de couverture intégré à la phase de construction de projet de test unitaire, toutefois, la documentation de l'outil dit qu'il est assez simple d'obtenir une couverture de code à la situation que vous avez décrite. P>
Bonjour, Pourriez-vous expliquer comment intégrer Emma à l'intérieur d'une phase de test maven? J'ai besoin de faire la même chose. Merci beaucoup!
CODE CODE est un excellent outil. Pour votre cas, vous devriez utiliser Interface de ligne de commande , que pourriez-vous intégrer avec PowerShell existant scripts. p>
afaik, tous les outils de couverture de code utilisent le même concept (je omettrai la pièce de rapport et de contrôle): P>
Pour la deuxième étape, le cas d'utilisation commune est en effet exécuter des tests JUNIT, mais vos tests Et le code instrumenté ne doit pas être exécuté dans le contexte d'un test d'unité, il peut être emballé dans une guerre / une oreille et déployé sur un conteneur (cela nécessitera simplement un peu plus de travail). P >
Pour Cobertura, c'est ce que nous pouvons lire dans le Foire aux questions : P >
Oui! Le processus est un peu plus
impliqué, mais le concept est le même.
Premier instrument votre compilé
Des classes. Puis créez votre fichier de guerre.
Puis déployez le fichier de guerre dans votre
Server d'application (Tomcat, JBoss,
Weblogic, WebSphere, etc.). Maintenant courir
vos tests. P>
Comme vos cours sont accessibles, ils
créera un fichier "coobertura.ser" sur
le disque. Vous devrez peut-être creuser autour d'un
peu pour le trouver. Cobertura met ça
fichier dans ce qu'il considère comme le
Répertoire de travail actuel. Typiquement
c'est le répertoire que le
Le serveur d'applications a été démarré à partir de
(Par exemple, c: \ tomcat \ bin) Remarque:
Ce fichier n'est pas écrit sur le disque
jusqu'à ce que le serveur d'applications sort. strong>
Voir ci-dessous pour savoir comment travailler autour de cela. P>
Maintenant que vous savez où le
Le fichier coobertura.ser est, vous devriez
modifier votre étape de déploiement afin qu'il
déplace l'original coobertura.ser à
le répertoire approprié dans votre
serveur d'applications, puis le déplace
retour lorsque des tests finis. Puis courir
COBERTURA-REPORT. P>
[...] p>
blockQuote>
Pour Emma, c'est ce que le Documentation dit: p>
Tout d'abord, il y a peu de chances que vous puissiez utiliser le mode à la volée (Emmarun) avec un conteneur J2EE complet. La raison réside dans le fait que de nombreuses fonctionnalités J2EE nécessitent une charge de classement spécialisée qui se produira en dehors de EMMA Instrument Classloader. Le serveur peut fonctionner bien, mais vous n'obtiendrez probablement aucune donnée de couverture. P>
Ainsi, la procédure correcte consiste à instrument vos classes avant le déploiement (mode hors ligne). L'instrumentation hors ligne suit toujours le même compile / instrument / package / déploiement / get de la couverture / générer des rapports séquences. Suivez ces étapes: p>
pour trèfle, cochez le Utilisation des applications distribuées Page . P>
Utilisation de COBERTURA avec une application Web h2>
Je suggère Jacoco , car il ne nécessite pas de modification de code source. Découvrez Couverture de code de mesure dans (Tomcat) Applications Java avec un harnais de Greybox P>