Splitter Phase de Tests d'Integration en 2 ?
Bonjour à Tous,
Maintenant qie j'ai bien isolé mes Tests Unitaires de mes Tests d'Intégration
(voir: http://www.developpez.net/forums/d13...s-integration/ ;))...
j'aimerais à présent distinguer 2 types de Tests d'Integration (rappel: je suis en environnement Spring, et multi-modules maven) :
- ceux avec l'injection standard (runtime) de mes objets
- ceux avec des injections de mock (mockito used) d'objets
Pour cela, en regard des profils Maven, j'utilise les Profils Spring (depuis la 3.1).
Selon le profil Maven (INTEGRATION ou MOCK), j'injecte via un propriété Maven tel ou tel profil Spring :
Code:
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 97 98 99 100 101 102 103
|
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
<configuration>
<skipTests>${skip.unit.tests}</skipTests>
<systemProperties>
<property>
<name>spring.profiles.active</name>
<value>${spring.profiles.active}</value>
</property>
</systemProperties>
<excludes>
<exclude>**/itest/**/*.java</exclude>
</excludes>
</configuration>
<executions>
<!-- SOIT cette "execution" là ("integration standard") ?.. -->
<execution>
<id>surefire-integ-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skipTests>${skip.integration.tests}</skipTests>
<systemProperties>
<property>
<name>spring.profiles.active</name>
<value>${spring.profiles.active}</value>
</property>
</systemProperties>
<excludes>
<exclude>none</exclude>
</excludes>
<includes>
<include>**/itest/**/*.java</include>
</includes>
</configuration>
</execution>
<!-- SOIT cette "execution" là ("integration avec Mock") ?.. -->
<execution>
<id>surefire-integ-test-withMock</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skipTests>${skip.integration.tests}</skipTests>
<systemProperties>
<property>
<name>spring.profiles.active</name>
<value>${spring.profiles.active}</value>
</property>
</systemProperties>
<excludes>
<exclude>none</exclude>
</excludes>
<includes>
<include>**/itest/mock/**/*.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
[...]
<!-- Integration tests standard -->
<profile>
<id>INTEGRATION</id>
<properties>
<config.classifier>INTEGRATION</config.classifier>
<filtering.file.name>local.properties</filtering.file.name>
<skip.integration.tests>false</skip.integration.tests>
<skip.unit.tests>true</skip.unit.tests>
<!-- Spring profile -->
<spring.profiles.active>runtime</spring.profiles.active>
</properties>
</profile>
<!-- Integration tests with MOCK -->
<profile>
<id>MOCK</id>
<properties>
<config.classifier>MOCK</config.classifier>
<filtering.file.name>local.properties</filtering.file.name>
<skip.integration.tests>false</skip.integration.tests>
<skip.unit.tests>true</skip.unit.tests>
<!-- Spring profile -->
<spring.profiles.active>mock</spring.profiles.active>
</properties>
</profile>
[...] |
Problème :
je ne sais pas trop comment configurer les 2 <execution> pour que soit l'une, soit l'autre soit lancée selon le profil Maven.... est-ce possible ?
Peut-être que je m'y prends comme un manche !...
Si vous avez une idée à ce sujet, n'hésitez pas
(et en supposant que j'ai énoncé clairement ma problèmatique)
Merci d'avance