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 :

Lancement des tests / Cycle de vie


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut Lancement des tests / Cycle de vie
    Bonjour,

    Malgré le tutoriel, je n'arrive pas à comprendre comment fonctionne les "goals" maven.

    Quand je fais : mvn clean install, les tests doivent-ils être lancés ?
    Si je lis ce document, je comprends que oui pourtant aucun de mes tests ne sont lancés.

    Merci pour votre aide sur cette question qui peut paraître basique...

    Elodie

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    Voici le cycle de vie maven : http://maven.apache.org/guides/intro...lifecycle.html (Section "Lifecycle Reference"). Comme tu peux le voir dans ce tableau, la phase "test" est avant le phase "install". Donc si tu exécutes install, maven exécutera test auparavant.

    Peux tu nous montrer ce que tu as fait ? As-tu ajouté junit dans les "depencies" dans ton pom.xml ? As-tu bien mis tes classes de test dans "src/test/java" ?

    Romain.

  3. #3
    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 : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Comme l'a dit rg77140, par défaut Maven lancera toujours les tests. S'ils ne sont pas lancés, cela peut être dû à l'un de ces faits :

    • Le code de test n'est pas dans src/test/java (convention Maven) et rien n'est configuré dans le pom.xml
    • Aucune dépendance JUnit (ou TestNG) n'est déclarée dans le pom
    • Pas de tests
    • Les tests sont écrits pour JUnit 4.x mais le runner configuré est JUnit 3 (qui ne comprend pas les annotations par ex.)
    • autre chose ?


    Bref, le mieux c'est de nous montrer ton pom.xml, et éventuellement de lancer la commande mvn test et de voir ce que disent les logs...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Bonjour,

    Je ne respecte pas la convention Maven, et mes tests sont dans NomProjet/test ce que j'ai précisé dans <testSourceDirectory> au niveau de mon projet.

    J'ai bien une dépendance vers JUnit ainsi que le plugin surefire-maven-plugin.

    Voilà mon pom.xml :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.solutions.toutou.titi</groupId>
    	<artifactId>Parent</artifactId>
    	<version>1.0.0-SNAPSHOT</version>
    	<packaging>pom</packaging>
     
    	<modules>
    		<module>../com.solutions.toutou.titi</module>
    	</modules>
     
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<tycho-version>0.16.0</tycho-version>  
    	</properties>
     
    	<repositories>  
    		<repository>
    			<id>thingml</id>
    			<name>Maven Repository for Eclipse e4</name>
    			<url>http://maven.thingml.org/thirdparty</url>
    		</repository>
    		<repository>  
    			<id>juno</id>  
    			<layout>p2</layout>  
    			<url>http://download.eclipse.org/releases/juno/</url>  
    		</repository>	
    	</repositories>  
     
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-install-plugin</artifactId>
    				<version>2.4</version>
    				<configuration>
    					<source>1.7</source>
    					<target>1.7</target>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-surefire-plugin</artifactId>
    				<version>2.13</version>
    				<configuration>
    					<source>1.7</source>
    					<target>1.7</target>
    					<testSourceDirectory>${basedir}/test/</testSourceDirectory>
    				</configuration>
    			</plugin>
    			<plugin>  
    				<!-- enable tycho build extension -->  
    			  	<groupId>org.eclipse.tycho</groupId>  
    			  	<artifactId>tycho-maven-plugin</artifactId>  
    			 	<version>${tycho-version}</version>  
    			  	<extensions>true</extensions>  
    			</plugin> 
    			<plugin>  
    			 	<groupId>org.eclipse.tycho</groupId>  
    			 	<artifactId>target-platform-configuration</artifactId>  
    			 	<version>${tycho-version}</version>  
    			 	<configuration>  
    			  		<environments>  
    			   			<environment>  
    			    			<os>win32</os>  
    			    			<ws>win32</ws>  
    			    			<arch>x86_64</arch>  
    			   			</environment>  
    			  		</environments>  
    			 	</configuration>  
    			</plugin>
    		</plugins>
    	</build>
     
    	<dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.11</version>
    			<type>jar</type>
    			<scope>test</scope>
    			<optional>true</optional>
    		</dependency>
    		<dependency>
    			<!-- for 
    			org.osgi.framework;
    			org.osgi.framework.BundleActivator;
    			org.osgi.framework.BundleContext;
    			-->
    			<groupId>org.osgi</groupId>
    			<artifactId>org.osgi</artifactId>
    			<version>3.0.0</version>
    		</dependency>
    	</dependencies>	
    </project>
    Voici le pom du module titi :

    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
    16
    17
    18
    19
    20
    21
    22
    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
    	xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
    	<modelVersion>4.0.0</modelVersion>
    	<artifactId>com.solutions.toutou.titi</artifactId>
    	<packaging>eclipse-plugin</packaging>
     
    	<parent>
    		<groupId>com.solutions.toutou.titi</groupId>
    		<artifactId>Parent</artifactId>
    		<version>1.0.0-SNAPSHOT</version>
    		<relativePath>../com.solutions.toutou.parent/pom.xml</relativePath>
    	</parent>
     
        <build>
    		<sourceDirectory>src</sourceDirectory>
    		<testSourceDirectory>test</testSourceDirectory>
    	</build>
     
    </project>
    Je viens de relancer mon Eclipse, refait un clean, etc.
    Et si je lance sur mon projet titi > Run as configuration > JUnit test en cherchant les tests dans mon tout le projet titi avec un Runner JUnit 4, il me lance bien les deux tests que j'ai.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Si je regarde ma tâche "clean install" de Maven :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    [INFO] ------------------------------------------------------------------------
    [INFO] Building com.solutions.toutou.titi 1.0.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ com.solutions.toutou.titi ---
    [INFO] Deleting C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target
    [INFO] 
    [INFO] --- tycho-packaging-plugin:0.16.0:build-qualifier (default-build-qualifier) @ com.solutions.toutou.titi ---
    [INFO] 
    [INFO] --- tycho-packaging-plugin:0.16.0:validate-id (default-validate-id) @ com.solutions.toutou.titi ---
    [INFO] 
    [INFO] --- tycho-packaging-plugin:0.16.0:validate-version (default-validate-version) @ com.solutions.toutou.titi ---
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ com.solutions.toutou.titi ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\src\main\resources
    [INFO] 
    [INFO] --- tycho-compiler-plugin:0.16.0:compile (default-compile) @ com.solutions.toutou.titi ---
    [INFO] Compiling 7 source files to C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target\classes
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ com.solutions.toutou.titi ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\src\test\resources
    [INFO] 
    [INFO] --- tycho-packaging-plugin:0.16.0:package-plugin (default-package-plugin) @ com.solutions.toutou.titi ---
    [INFO] Building jar: C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target\com.solutions.toutou.titi-1.0.0-SNAPSHOT.jar
    [INFO] 
    [INFO] --- tycho-p2-plugin:0.16.0:p2-metadata-default (default-p2-metadata-default) @ com.solutions.toutou.titi ---
    [INFO] 
    [INFO] --- maven-install-plugin:2.4:install (default-install) @ com.solutions.toutou.titi ---
    [INFO] Installing C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target\com.solutions.toutou.titi-1.0.0-SNAPSHOT.jar to D:\.m2\repository\com\solutions\toutou\titi\com.solutions.toutou.titi\1.0.0-SNAPSHOT\com.solutions.toutou.titi-1.0.0-SNAPSHOT.jar
    [INFO] Installing C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\com.solutions.toutou.titi\pom.xml to D:\.m2\repository\com\solutions\toutou\titi\com.solutions.toutou.titi\1.0.0-SNAPSHOT\com.solutions.toutou.titi-1.0.0-SNAPSHOT.pom
    [INFO] Installing C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target\p2content.xml to D:\.m2\repository\com\solutions\toutou\titi\com.solutions.isoneo.citrus\1.0.0-SNAPSHOT\com.solutions.isoneo.citrus-1.0.0-SNAPSHOT-p2metadata.xml
    [INFO] Installing C:\Users\Elodie\Documents\projets\ECLIPSE\workspaces\...\target\p2artifacts.xml to D:\.m2\repository\com\solutions\toutou\titi\com.solutions.toutou.titi\1.0.0-SNAPSHOT\com.solutions.toutou.titi-1.0.0-SNAPSHOT-p2artifacts.xml
    [INFO] 
    [INFO] --- tycho-p2-plugin:0.16.0:update-local-index (default-update-local-index) @ com.solutions.toutou.titi ---
    [INFO]
    Je ne vois à aucun moment que les tests sont lancés... ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonsoir,

    Je ne vois rien d'aberrant comme ça, mais il y a surement quelque chose qui cloche...

    Tu devrais y aller par étape... Créer un seul module en respectant l'architecture de base maven, ensuite changer le répertoire de test, ensuite créer un module et un pom parent, ...

    Au passage tes groupid et artefactid sont pas très homogènes...

    Premier projet :
    <groupId>com.solutions.toutou.titi</groupId>
    <artifactId>Parent</artifactId>

    Deuxième projet (le groupid étant hérité du parent) :
    <groupId>com.solutions.toutou.titi</groupId><artifactId>com.solutions.toutou.titi</artifactId>

    L'artefactid devrait être le nom de ton module (comme tu l'as fait pour "Parent").

    Romain.

  7. #7
    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 : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Le "problème" semble se situer à cet endroit de ton pom.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <packaging>eclipse-plugin</packaging>
    Ceci indique que ton projet est destiné à créer un package Tycho pour un plugin Eclipse. Du coup, on sort du cycle de vie classique de Maven, pour atterir sur celui de Tycho. Je n'ai jamais fait de développement de plugin d'Eclipse, mais d'après les informations trouvées ici, il faut créer un module séparé pour les tests :

    Maven projects typically have separate test source directories in the same project. The Eclipse convention, however, is to have a separate test bundle
    Autrement dit :

    Les projets Maven disposent généralement de répertoires spécifiques pour les tests au sein du même projet. La convention Eclipse indique toutefois qu'il est nécessaire d'avoir son propre module de tests.
    Bref, 2 solutions :
    • Sortir les tests dans un module séparé
    • Trouver comment configurer ton pom pour "sortir" de cette convention et ainsi garder tes tests dans le même module...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Bonjour,

    Merci pour vos retours.
    Je vais rectifier en effet pour uniformiser mes artifactId et groupId.

    En effet j'ai enlevé le "packaging" et il a compilé mes tests. Il va falloir que je ré-organise l'intégralité du projet pour l'adapter à Tycho en fait... la charge de boulot en plus youhou

    Je ne mets pas ce post en résolu pour le moment, au cas où que je trouve une solution pour faire cohabiter Tycho et des tests Maven classiques au fur et à mesure de mes tests.

    Encore merci,

    Elodie

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 75
    Par défaut
    Re-bonjour,

    L'adaptation de mon projet avec Tycho jusqu'à un "fragment project" pour faire mes tests a fonctionné du premier coup.
    Par contre pas moyen de coupler Tycho avec une phase de test Maven "native". Donc je laisse tomber et je vais tout faire avec Tycho.

    Cordialement,

    Elodie

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

Discussions similaires

  1. Lancement des tests gwt avec un projet full maven
    Par shaoz dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 30/07/2013, 15h17
  2. [JUnit] problème de lancement des tests Junit
    Par zizo08 dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 16/12/2010, 09h56
  3. [Observateur] Prog. évènementielle, cycle de vie différent de la présentation et des données ?
    Par thomine dans le forum Design Patterns
    Réponses: 6
    Dernier message: 04/05/2009, 13h38
  4. Cycle de vie des classes Action ?
    Par guillaume06 dans le forum Struts 1
    Réponses: 3
    Dernier message: 04/10/2007, 09h28

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