Es gibt zwei Optionen, eine Maven-Lösung und eine todsichere Lösung. Die am wenigsten gekoppelte Lösung besteht darin, ein Plugin in der pre-integration-test
und post-integration-test
Phase auszuführen. Siehe Introduction to the Build Lifecycle - Lifecycle Reference. Ich bin nicht vertraut mit Grizzly, aber hier ist ein Beispiel unter Verwendung von Anlegesteg:
<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>
Beachten Sie, dass die Phase für start
ist pre-integration-test
und stop
post-integration-test
ist. Ich bin mir nicht sicher, ob es ein Grizzly Maven Plugin gibt, aber Sie könnten stattdessen die maven-antrun-plugin verwenden.
Die zweite Option ist die Verwendung einer JUnit RunListener. RunListener
hört Ereignisse, wie Testbeginn, Testende, Testfehler, Test Erfolg usw.
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 {}
}
testen So könnte man für runStarted und RunFinished hören. Diese würden die gewünschten Dienste starten/stoppen. Dann in todsicheren, können Sie einen benutzerdefinierten Hörer angeben, mit:
<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>
Dies ist von Maven Surefire Plugin, Using JUnit, Using custom listeners and reporters
, die man verwenden Sie, wenn nicht JUnit? – TheWhiteRabbit
Wenn Sie POJO oder TestNG Tests verwenden können Sie @BeforeClass verwenden – TheWhiteRabbit
@TechExchange Aktualisierte Frage, um zu klären, dass ich Maven todsichere – hertzsprung