Il existe deux options, une solution Maven et une solution infaillible. La solution la moins couplée consiste à exécuter un plug-in dans la phase pre-integration-test
et post-integration-test
. Voir Introduction to the Build Lifecycle - Lifecycle Reference. Je ne suis pas au courant de grizzly, mais voici un exemple en utilisant la jetée:
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<contextPath>/xxx</contextPath>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Notez que la phase de start
est pre-integration-test
et stop
est post-integration-test
. Je ne suis pas sûr s'il existe un plugin Grizzly Maven, mais vous pouvez utiliser le maven-antrun-plugin à la place.
La deuxième option consiste à utiliser un JUnit RunListener. RunListener
écoute pour tester les événements, tels que le test début, la fin de test, échec du test, le succès de test, etc.
public class RunListener {
public void testRunStarted(Description description) throws Exception {}
public void testRunFinished(Result result) throws Exception {}
public void testStarted(Description description) throws Exception {}
public void testFinished(Description description) throws Exception {}
public void testFailure(Failure failure) throws Exception {}
public void testAssumptionFailure(Failure failure) {}
public void testIgnored(Description description) throws Exception {}
}
Vous pouvez écouter RunStarted et RunFinished. Ceux-ci démarrer/arrêter les services que vous voulez. Puis, dans Surefire, vous pouvez spécifier un écouteur personnalisé, en utilisant:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value>
</property>
</properties>
</configuration>
</plugin>
Ceci est de Maven Surefire Plugin, Using JUnit, Using custom listeners and reporters
lequel utilisez-vous sinon JUnit? – TheWhiteRabbit
Si vous utilisez des tests POJO ou TestNG, vous pouvez utiliser @BeforeClass – TheWhiteRabbit
@TechExchange Mise à jour de la question pour clarifier que j'utilise maven surefire – hertzsprung