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 :

[Maven 2 - Abbot]Ne fonctionne pas. . .


Sujet :

Maven Java

  1. #1
    Membre confirmé Avatar de Lynk HIROSUE
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Par défaut [Maven 2 - Abbot]Ne fonctionne pas. . .
    Amis qui aimez les défis, en voici un !

    Je vais vous énoncer, dans ce petit roman, les misères que me font ces deux petits...

    A l'origine des temps, il m'a été donné de faire des tests de GUI java avec Abbot (qui est donc un tester de GUI java) ! Voici ce que j'avais comme source, tout fonctionnait à merveille...

    source 1 : GUI a tester...

    Ce petit programme nous montre une fenêtre avec 2 JTextField, 1 JButton et 1 JLabel. En cliquant sur le bouton, ce qu'il y a d'écrit dans les 2 champs de texte apparaissent dans le label ; sugoi desu ne (super n'est-ce pas) !

    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
    package appli;
    
    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class monAppli extends JPanel {
    
        /**
         * @author Lynk HIROSUE
         */
    
        private static final long serialVersionUID = -4022424656891074136L;
    
        public monAppli() {
            buildFrame();
        }
    
        private static void buildFrame() {
            JFrame myFrame = new JFrame("App");
            final Container myPanneau = myFrame.getContentPane();
    
            myPanneau.setLayout(new GridLayout(4, 1, 0, 0));
    
            JButton whoIAm = new JButton("qui suis-je ?");
            final JLabel resultat = new JLabel();
            final JTextField nom = new JTextField("HIROSUE");
            final JTextField prenom = new JTextField("Lynk");
    
            nom.setName("nom");
            prenom.setName("prenom");
    
            myPanneau.add(nom);
            myPanneau.add(prenom);
            myPanneau.add(whoIAm);
            myPanneau.add(resultat);
    
            myFrame.pack();
            myFrame.setVisible(true);
    
            whoIAm.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent arg0) {
                    myPanneau.remove(nom);
                    myPanneau.remove(prenom);
                    resultat.setText(nom.getText() + " " + prenom.getText());
                }
    
            });
    
        }
    
        public static void main(String[] args) {
            buildFrame();
        }
    }
    Voilà, j'ai pris du temps à tout coloriser, mais c'est plus agréable à lire comme ça !

    Source 2 : test Abbot

    Voici maintenant la source des tests (enfin, du test). dans ce test, je fais une action "cliquer" sur le bouton et je vérife que ce que j'ai dans le label correspond bien à ce que j'ai entré dans les 2 champs de texte.

    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
    package test;
    import appli.MonAppli;
    
    import java.awt.Component;
    
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    
    import abbot.finder.ComponentNotFoundException;
    import abbot.finder.MultipleComponentsFoundException;
    import abbot.finder.matchers.ClassMatcher;
    import abbot.finder.matchers.NameMatcher;
    import abbot.tester.JButtonTester;
    import junit.extensions.abbot.ComponentTestFixture;
    import junit.extensions.abbot.TestHelper;
    
    
    public class MonAppliTest extends ComponentTestFixture {
        
        public void testWhoIAm(){
            final MonAppli ma = new MonAppli();
            showFrame(ma);
            
            Component bouton = null;
            Component label = null;
            Component txt1 = null;
            Component txt2 = null;
            
            try {
                bouton = getFinder().find(new ClassMatcher(JButton.class));
                label = getFinder().find(new ClassMatcher(JLabel.class));
                txt1 = getFinder().find(new NameMatcher("nom"));
                txt2 = getFinder().find(new NameMatcher("prenom"));
    
            } catch (ComponentNotFoundException e) {
                System.err.println("No component found : " + e);
            } catch (MultipleComponentsFoundException e) {
                System.err.println("More than one component found : " + e);
            }
            
            JButtonTester tester = new JButtonTester();
            
            tester.actionClick(bouton);
            assertEquals("Wrong way!","HIROSUE Lynk", ((JLabel)label).getText());
            
            assertEquals("Bad","HIROSUE", ((JTextField)txt1).getText());
            assertEquals("Bad","Lynk", ((JTextField)txt2).getText());
            
        }
        
        public MonAppliTest(String name){
            super(name); 
        }
    
        public static void main(String[] args) {
            TestHelper.runTests(args, MonAppliTest.class);
        }
    
    }
    Voilà !

    Jusqu'ici, tout fonctionnait. Mais, (et oui, sinon c'est pas drôle), depuis que je l'ai mis sur maven 2, il ne m'aime plus... Les deux librairie que j'utilisais (JUnit 3.8.1 et Abbot 1.0.0rc2) sont à présent dans les dependencies sauf que la librairie Abbot est de version 0.13.0, j'ai donc repris mon ancien Abbot et renommé celui-ci et remis dans le repository local, l'erreur qu'il me faisait avec l'ancienne version n'apparait plus ; je passe ce passage...

    Donc, voici comment est fait mon projet avec maven 2. Les deux source (source 1 et source 2) sont les mêmes.

    Mon pom.xml est le suivant :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>mavenTest</groupId>
        <artifactId>mavenTest</artifactId>
        <name>maven test with Abbot developpement</name>
        <version>1.1</version>
        <description>my test to understand Maven2</description>
        <developers>
            <developer>
                <id>ndurand</id>
                <name>Mon nom</name>
                <email>monMail@monEntreprise.com</email>
                <organization>monEntreprise</organization>
            </developer>
        </developers>
        <scm>
            <connection>connexionsecrète</connection>
            <developerConnection>
                developerConnectionSecret</developerConnection>
            <url>urlSecrèteAussi</url>
        </scm>
        <build>
            <resources>
                <resource>
                    <directory>src/main/java/appli</directory>
                </resource>
            </resources>
            <testResources>
                <testResource>
                    <directory>src/test/test</directory>
                </testResource>
            </testResources>
            <plugins>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>appli.monAppli</mainClass>
                                <packageName>swing</packageName>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>abbot</id>
                <name>abbot</name>
                <url>http://uneUrl.com</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
            </dependency>
            <dependency>
                <groupId>abbot</groupId>
                <artifactId>abbot</artifactId>
                <version>0.13.0</version>
            </dependency>
        </dependencies>
    </project>
    Voilà, et voici la disposition de mon projet :
    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
     
    /mavenTest [mavenTest]
    |
    +-/src/main/java
    ||
    |+-/appli
    |||
    ||+-monAppli.java
    ||
    +-JRE System Library [jre1.5.0_06]
    |
    +-/src/test/
    ||
    |+-/test
    |||
    ||+-monAppliTest.java
    |
    +-/Maven2 Dependencies
    ||
    |+-abbot-0.13.0.jar
    |+-junit-3.8.1.jar
    |
    +-/src
    ||
    |+-/main
    |
    +-pom.xml
    et voici ma belle erreur (dans JUnit, lorsque je lance le test...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    java.lang.NoClassDefFoundError: org/jdom/JDOMException
        at junit.extensions.abbot.ResolverFixture.fixtureSetUp(ResolverFixture.java:63)
        at junit.extensions.abbot.ComponentTestFixture.fixtureSetUp(ComponentTestFixture.java:335)
        at junit.extensions.abbot.ResolverFixture.runBare(ResolverFixture.java:89)
        at junit.extensions.abbot.ComponentTestFixture.runBare(ComponentTestFixture.java:399)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Voilà, mesdames, mesdemoiselles, messieurs...

    A vos méninges !!!

  2. #2
    Membre confirmé Avatar de Lynk HIROSUE
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Par défaut
    PS : voici quelques liens utiles...

    Abbot

    Autre

  3. #3
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Lynk HIROSUE
    Jusqu'ici, tout fonctionnait. Mais, (et oui, sinon c'est pas drôle), depuis que je l'ai mis sur maven 2, il ne m'aime plus... Les deux librairie que j'utilisais (JUnit 3.8.1 et Abbot 1.0.0rc2) sont à présent dans les dependencies sauf que la librairie Abbot est de version 0.13.0, j'ai donc repris mon ancien Abbot et renommé celui-ci et remis dans le repository local, l'erreur qu'il me faisait avec l'ancienne version n'apparait plus ; je passe ce passage...
    Beurk......

    Alors, ce qu'il faut faire:

    Installer Abbot 1.0.0-rc2 correctement dans ton repository local (install:install-file).
    Lui créer un fichier pom qui liste ses dépendances (typiquement, tout ce qui est dans le repertoire lib du zip que tu telecharges, et qui comprends, oh surprise, jdom).

    Puis soumettre tout ça sur http://jira.codehaus.org/browse/MEV

    Bonne chance

  4. #4
    Membre confirmé Avatar de Lynk HIROSUE
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Par défaut
    Citation Envoyé par denisC
    Beurk......

    Bonne chance
    Merci...

  5. #5
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Lynk HIROSUE
    Le problème est le suivant, je n'ai que ce ZIP là :

    http://heanet.dl.sourceforge.net/sou...t-1.0.0rc2.zip

    Je prend quel jar là dedans ? Parce que, y'a pas mal de truc autour, je sais pas s'il servent aussi... si c'est le cas, hum hum... c'est embettant... Enfin... Je sais pas trop...

    Please help!

    Tu prends le jar du projet : lib/abbot.jar

    Que tu installes en faisant un install:install-file

    Puis tu prends chacune des librairies (autres) présentes dans lib et tu la déclares comme dépendance de abbot en version 1.0.0-rc2

  6. #6
    Membre confirmé Avatar de Lynk HIROSUE
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Par défaut
    Et le pom, je le met où après ? Faut que j'ouvre le .jar en tant que projet et que je lui mette un pom dedans ??

    Hum...

    Est-ce ça ?

    et puis, ces dependencies, je les met aussi dans le abbot que j'ai mis dans le repository local ?

  7. #7
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par Lynk HIROSUE
    Et le pom, je le met où après ? Faut que j'ouvre le .jar en tant que projet et que je lui mette un pom dedans ??
    A coté du jar dans le repository. Ou mieux, tu lui fait un install:install-file

    Citation Envoyé par Lynk HIROSUE
    et puis, ces dependencies, je les met aussi dans le abbot que j'ai mis dans le repository local ?
    Non, juste dans le pom. Maven se débrouillera pour le retrouver.

    Mais c'est à toi de transformer ces fichiers jars en couples groupId/artifactId adaptés
    par exemple jdom/jdom/1.0 pour commencer... Tu peux même essayer juste avec ça, peut-être que ça suffit. Tu verras bien si il plante ou pas

  8. #8
    Membre confirmé Avatar de Lynk HIROSUE
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Par défaut
    oué, en faite, dans ma super stupidité, je n'avais pas vu que (enfin si, j'avais vu, mais j'avais pas essayer) la dependency maven-abbot-plugin 1.1 !

    J'avais essayé la 1.0 (peut etre que la 1.1 est récente d'ailleur et que je ne l'avais pas vu avant !) mais "import abbot.tester.JButtonTester;" n'existait pas, et mon test était basé sur un clic sur un boutton (JbuttonTester...)

    Mais, depuis la 1.1, ça fonctionne à merveille !!

    haha...hahahahahaha...

    Pas besoin de me prendre la tête !!!

    C'est super !!

    haha...hahahahahahaha....


    (excusez encore l'excès de smiley, c'est juste que...je craque...)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2015, 00h47
  2. [Maven] Repository search ne fonctionne pas
    Par kariel dans le forum Eclipse
    Réponses: 2
    Dernier message: 20/10/2014, 15h28
  3. Réponses: 3
    Dernier message: 30/07/2008, 08h51
  4. Réponses: 12
    Dernier message: 30/12/2006, 16h49
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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