Отладка сценариев JBehave
Вопрос
У меня возникли проблемы с отладкой моих тестов jbehave.Я не могу заставить maven запустить тесты jbehave и остановиться на точке останова.У меня есть это в моем помпоне:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<version>2.0.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<executions>
<execution>
<id>run-scenarios-found</id>
<phase>test</phase>
<configuration>
<scenarioIncludes>
<scenarioInclude>**/scenario/**/*${test}.java</scenarioInclude>
</scenarioIncludes>
<scenarioExcludes>
<scenarioExclude>**/*Steps.java</scenarioExclude>
</scenarioExcludes>
</configuration>
<goals>
<goal>run-scenarios</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
и я пробовал такие вещи, как:
$ mvn -e -o -Dtest=MyTest -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" clean test
и
$ export MVN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" ; mvn -Dtest=MyTest clean test
Я могу попытаться использовать jsadebugd джсадебугд, но мне, вероятно, потребуется точное время для автоматизации, так что это звучит как неоптимальное решение, и я чувствую, что плагин JBehave Maven должен обеспечивать эту функциональность.Очевидно, что я просто еще не нашел нужную часть документации.Есть какие - нибудь идеи , как мне поступить по этому поводу ?
Решение
У меня сработало следующее:экспортировать MAVEN_OPTS="-Xdebug -Xrunjdwp:транспорт=dt_socket,сервер= y, приостановить=y, адрес=8787 -Xnoagent -Djava.compiler=НЕТ"
затем запустите мои тесты mvn:установка mvn
(maven теперь зависает в ожидании подключения отладчика)
Затем запустите Eclipse в сеансе удаленной отладки, указав на локальный хост, порт 8787 (как указано выше), с установленными соответствующими точками останова.
Другие советы
Не проще ли было бы запускать тесты не с maven, а в IDE с JUnit?Тогда вы можете использовать отладчик напрямую?Обычно я делаю это так, что сервер CI использует maven для выполнения JBehave, но в IDE я предпочитаю более прямой способ выполнения.
Это сработало для меня:
- В Затмении Беги -> Отлаживайте конфигурации...
- Выберите Сборка Maven и нажмите Новое кнопка
- Ставьте цели (
clean very
в моем случае) и возможные параметры - Попал Отлаживать кнопка
mvn -e -o -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:транспорт=dt_socket,сервер= y, приостановка=y, адрес = 8787 -Xnoagent -Djava.compiler= НЕТ" интеграционный тест
Эта линия идеально подошла мне.Настройте свой проект Jbehave в eclipse с помощью порта отладки (8787) и быстро подключитесь к отладчику, пока mvn ожидает подключения к вашему проекту eclipse.