Bonjour,

pour tester un programme avec une interface utilisateur en Swing, j'utilise Fest. Le problème de Fest est qu'avec ma configuration à 2 écrans, l'ouverture des fenêtres a tendance à se faire sur un écran, et les clics souris sur un autre...
J'ai résolu le problème avec un script qui me crée un affichage virtuel avec Xvfb. Je le lance grâce au plugin exec-maven lors de la phase test-compile, de manière à en disposer pour les tests. Maintenant, les tests de l'interface graphique se font sur l'affichage virtuel, et je ne suis plus embêté par les mouvements du curseur de la souris.
Il ne me reste plus qu'à arrêter Xvfb à l'issue des tests. Je fais ceci toujours avec mon script lors de la phase test. Tout va bien en cas de succès des tests. Malheureusement, si les tests unitaires échouent, le build s'arrête et mon script ne se lance jamais.
Je ne veux pas configurer le plugin surefire pour ignorer l'échec des tests : mon script se lance bien, mais le build est considéré comme réussi...

Voici un extrait de 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
 
...
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>Launching Xvfb</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <environmentVariables>
                                <DISPLAY>${display}</DISPLAY>
                            </environmentVariables>
                            <executable>bash</executable>
                            <arguments>
                                <argument>${project.build.directory}/test-classes/scripts/Xvfb_launch.sh</argument>
                                <argument>start</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <configuration>
                    <executable>bash</executable>
                    <arguments>
                        <argument>${project.build.directory}/test-classes/scripts/Xvfb_launch.sh</argument>
                        <argument>stop</argument>
                    </arguments>
                </configuration>
                <executions>
                    <execution>
                        <id>Stopping Xvfb</id>
                        <phase>test</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <testFailureIgnore>true</testFailureIgnore>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
...
Merci à tous ceux qui pourront m'aider.