Comment avoir de couverture de code dans Jenkins avec Jacoco et plusieurs modules?

Mon code structure est comme suit :

événements
messages
autres-code
fonctionnelles-tests

Dans le script de build pour jacoco, d'abord, il a copier toutes les classes et l'utilisation de cette classe de répertoire pour exécuter l'outil. Pouvez-vous nous décrire les étapes wrt les répertoires cibles ici. Je veux dire, comment dois-je mentionner le répertoire d'exécution de la couverture de code.

À construire, chaque dossier a son propre dossier cible avec des classes de côté.

Voici les étapes:

  1. Projet de construction d'un travail de Jenkins
  2. De le déployer à l'utilisateur phase
  3. Exécuter jacoco rapport de travail de Jenkins

Jacoco rapport travail d'explication:

  1. Étape de génération - maven 3.3.3
    objectifs - propre test
    et testsuite, l'utilisateur phase de détails et d'autres informations sont transmises.
  2. Étapes Post - exécuter shell

    Incapable de format et de le coller ici, donc téléchargé ici: https://zerobin.net/?8a988cd05bf3d752#fbzMlW1b7uzD+HZnmwnd9WjQYBI3j95Q7DCIx6q+l0U=

  3. Invoquer haut niveau maven cibles - maven 3.3.3
    -f jacoco_pom.xml jacoco:dump antrun:run@report

La clasDir variable qui a été utilisé dans la coquille la pâte doit avoir des classes. Jusqu'à présent, je l'ai fait en début de script shell.

mkdir -p target/classes
cp -R messages/target/classes target/classes

et définir clsDir = target/classes,

De cette façon, j'ai reçu le rapport sur ce module. Mon testsuite ne contient qu'une classe. Je veux inclure d'autres modules comme events, other-code et aussi le lien de la source.

J'ai besoin d'aide sur comment dois-je le mettre en place. Le but principal est de générer des rapports de couverture de code de tests fonctionnels.

EDIT:

Réponse: réponse ci-Dessous aidé, mais il était tout à fait avec les commandes shell pas toute l'INTERFACE utilisateur. Donc, cloner le repo, faire mvn clean package -DskipTests et de copier sur les tous premier niveau de sous-dossiers à partir de tous les dossiers de module aidé, mais ensuite il a montré l'erreur de couverture Exécution incompatibilité de données pour les fichiers de classe. Ce qui signifie que la classe d'instrumentation et de la classe que nous utilisons pour la couverture sont construits séparément par différentes JVM (un dans Jenkins, un autre c'est déployée dans le stade).

Donc la solution était de ne pas cloner et de les recompiler, mais télécharger le manifeste de déploiement du référentiel et le déballage de tous les pots. De cette façon, j'ai eu toutes les classes de la même version.

Vous vous référez à certains "le script de construction", mais l'OMI sait pas ce que cela signifie - il ya beaucoup de différents outils de construction et il y a des tonnes de façons d'exécuter JaCoCo selon un outil de construction - Plugin Maven, Ant Tâches, etc. Donc, pourriez-vous préciser votre question, de préférence avec un plus propre exemple - voir stackoverflow.com/help/mcve ?
veuillez vérifier maintenant.

OriginalL'auteur xploreraj | 2017-02-16