Я пытаюсь выполнить дегустацию интеграции развертывания моего приложения в верхней части пользовательского контейнера. Поскольку мой контейнер является обычным я не могу использовать плагин Maven Cargo для настройки контейнера.
Мой контейнер:
- Должен быть запущен с помощью соответствующего файла bat, который находится на пути машины, на которой выполняются тесты.
- Может быть закрыт вручную, так как у меня есть один модуль maven, содержащий все мои тесты интеграции, даже если однажды мне хотелось бы знать, как закрыть процесс после завершения моих тестов.
Моя проблема в том, что я должен запускать свой контейнер в другом процессе, потому что он должен продолжать работать, пока мои тесты выполняются. Кроме того, у меня есть API в моих тестах, которые позволяют мне ждать, пока контейнер будет готов (своего рода поиск с таймаутом).
Я добавил следующие строки в мой pom.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>scripts/start-agent.bat</executable>
</configuration>
</plugin>
Это вызовет script, который содержит только
начать вызов gs-agent.bat
Однако плагин mvn exec застревает, а мои тесты не выполняются. В соответствии с тем, что предлагается в Как запустить пакетный файл из моего Java-приложения?, я изменил свой pom.xml следующим образом:
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/C</argument>
<argument>start</argument>
<argument>gs-agent.bat</argument>
</arguments>
</configuration>
Но это, похоже, не решает проблему: