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 : 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
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