IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Débrayer les tests pour release multi-module


Sujet :

Maven Java

  1. #1
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut Débrayer les tests pour release multi-module
    Dans le cadre d'une application maven multi-module (v2.0.9), dont certain des sous-modules possèdent des tests unitaires qui bien entendu ne sont plus à jour et ne passent plus, je souhaiterais les décommuter pour réaliser un release.

    Sauf que, pas moyen.

    J'ai essayé les lignes de commande suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn -Dmaven.test.skip=true release:prepare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn -DnoTest=true release:prepare
    Echec à chaque fois. En fait, j'ai l'impression que le commutateur n'est pas transmis au goal des sous-modules.

    Quelqu'un à une solution ?
    Merci !

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    moi j'utilise la commande mvn -Dtest=notest ..., mais parfois aussi la première que tu proposes, et ça marche (mais je suis en 2.0.8)

  3. #3
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    En multi-module ? C'est à dire que tu invoque la commande sur le projet parent ?

    Ca maaarche pas, snif

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Oui, en multi-modules.

    Tu n'as rien défini dans ton pom.xml sur les tests unitaires ?

  5. #5
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    J'ai rien définit de particulier.

    La seule configuration c'est la version du jdk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<configuration>
    					<source>1.6</source>
    					<target>1.6</target>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    Sinon, j'ai trouvé une ligne de commande qui fonctionne, mais c'est tordu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn release:prepare "-DpreparationGoals=clean install -Dmaven.test.skip=true"
    Bon, je pars la dessus...

  6. #6
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 84
    Points : 98
    Points
    98
    Par défaut
    En fait ce n'est pas si tordu que cela

    Le release plugin lance ses goals de préparation dans un fork, et ne passe pas les arguments donnés dans sa ligne de commande, mais bien ceux de son paramètre de config preparationGoals.

    Donc ta ligne est bien une bonne idée, même si je pense que le préciser comme ci-dessous est un peu plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn release:prepare "-DpreparationGoals=clean install" "-Darguments=-Dmaven.test.skip=true"
    Il est aussi possible de passer par une config du plugin de release dans le pom du projet, pour éviter des répétitions inutiles, et là, pourquoi ne pas imagineune config comme celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <build>
            <plugins>
                    (...)
                    <plugin>
    			<groupId>org.apache.maven.plugins</groupId>
    			<artifactId>maven-release-plugin</artifactId>
    			<version>2.0-beta-7</version>
    			<configuration>
    				<preparationGoals>clean install</preparationGoals>
    				<arguments>-Dmaven.test.skip=${maven.test.skip}</arguments>
    			</configuration>
    		</plugin> 
                    (...)
    	</plugins>
    </build>

  7. #7
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Excellent !

    A mettre dans la FAQ !

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Effectivement la solution est bien d'utiliser -DpreparationGoals et -Darguments
    Par exemple si vous voulez faire la release d'un projet parent sans ses modules vous pouvez utiliser :
    mvn release:prepare -Darguments="-N" -N
    Ainsi le build principal n'est pas récursif et le fork de la release non plus.


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Je confirme !

    A mettre dans la FAQ, car j'ai réellement bataillé avant de comprendre pourquoi mes tests unitaires étaient systématiquement exécutées lors d'une release....
    Le soucis c'est bien que je sache que ces tests aboutissaient forcément à un échec, tant que je n'avais pas réussi à les "squizzer"... Je ne pouvais faire de release...

  10. #10
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Un jour faudra tout de même m'expliquer pourquoi vous gardez des tests qui ne passent plus ??
    Pour augmenter le nombre de lignes ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Car tout simplement lors de la migration d'un projet (déplacement de base de test etc..) Nous pouvons être amené à passer outre les tests pour des raisons de planning sans quoi l'échec d'exécution des tests empêche toute release !

    Je me doute bien que l'on sort du cadre d'un process de release mais il y 'a certains moment où on a pas le choix !

  12. #12
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Je ne critique pas. Je sais qu'il y a toujours une bonne raison et que les gens ne le font pas par plaisir.
    C'est juste que faire une release si les tests passent pas ... c'est ennuyeux.
    C'est pour cela qu'ils doivent être maintenus au jour le jour.
    Je parle bien sur des tests unitaires. Pour les tests d'intégration c'est différent, si ils utilisent des ressources externes non dispo par exemple. Mais dans ce cas ils doivent etre dans un profile non activé par défaut.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    C'est en effet des tests d'intégration dont je parlais... qui nécessitaient l'utilisation d'une base actuellement indisponible.

    Je n'ai pas encore utilisé de profil d'activation de ces tests ! Je vais pencher sur la question.

    Merci pour ces éclaircissements

  14. #14
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 41
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Excellent !

    A mettre dans la FAQ !
    Je reviens sur ce message, tous les 6 mois je dois réutiliser le plugin release et tous les 6 mois je recherche ce fil qui n'est toujours pas dans la FAQ

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 56
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par gribo Voir le message
    Je reviens sur ce message, tous les 6 mois je dois réutiliser le plugin release et tous les 6 mois je recherche ce fil qui n'est toujours pas dans la FAQ
    salut, en fait ya déjà un super site, c'est celui de maven http://maven.apache.org/plugins/mave...pare-mojo.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tous les tests sont lancés pour chaque module
    Par Baptiste Wicht dans le forum Maven
    Réponses: 11
    Dernier message: 22/03/2010, 18h34
  2. développement piloté par les tests pour un jeu vidéo
    Par Mindiell dans le forum Méthodes Agiles
    Réponses: 1
    Dernier message: 06/08/2009, 11h28
  3. Strategies pour les tests unitaires
    Par xxiemeciel dans le forum Test
    Réponses: 6
    Dernier message: 17/04/2008, 12h59
  4. Méthodologie pour les tests
    Par Maitre B dans le forum Test
    Réponses: 7
    Dernier message: 10/03/2005, 18h57
  5. [Stratégie] Ant pour les tests en Java ?
    Par franckR dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 08/03/2004, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo