Тест интеграции клиент-сервер с 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>
Другие вопросы по тегам