Тест интеграции клиент-сервер с Maven
У меня есть простая игра, которая состоит из двух проектов: клиент и сервер. Теперь я хочу проверить, правильно ли они взаимодействуют. Программа установки: один родительский проект Maven и тест сервера / клиента /integetion в качестве дочерних модулей.
Я пытался следовать этому руководству http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing, которое представляет собой интеграционный тест с использованием maven-failsafe-plugin. Увы, он только описывает, как запустить Jetty-сервер, который доступен в виде плагина.
Как и где я могу запустить свой собственный клиент и сервер в этой конфигурации (или есть лучше) для тестирования? Я хотел сделать что-то вроде этого: сначала я хочу, чтобы клиент и сервер запускались перед тестом. В jUnittest я хочу иметь Socket и Serversocket, один подключен к серверу, а другой к клиенту. Затем я хочу передать клиент-серверное взаимодействие через эту настройку и проверить его между, или отправить конкретные сообщения им индивидуально, проверяя ответ.
Возможно ли что-то подобное или есть лучший способ?
1 ответ
Я делал подобные вещи раньше, но, к сожалению, у меня нет кода, доступного сейчас. Но это было что-то вроде ниже. Здесь, в pre-интеграционном тесте, запустите сервер, используя задачу ant exec, а в пост-интеграционном тесте остановите сервер
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>start-server</id>
<phase>pre-integration-test</phase>
<configuration>
<target>
<exec executable="command to start your server">
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>stop-server</id>
<phase>post-integration-test</phase>
<configuration>
<target>
<exec executable="command to stop your server">
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>