Вопрос

У меня возникли проблемы с отладкой моих тестов 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 я предпочитаю более прямой способ выполнения.

Это сработало для меня:

  1. В Затмении Беги -> Отлаживайте конфигурации...
  2. Выберите Сборка Maven и нажмите Новое кнопка
  3. Ставьте цели (clean very в моем случае) и возможные параметры
  4. Попал Отлаживать кнопка

mvn -e -o -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:транспорт=dt_socket,сервер= y, приостановка=y, адрес = 8787 -Xnoagent -Djava.compiler= НЕТ" интеграционный тест

Эта линия идеально подошла мне.Настройте свой проект Jbehave в eclipse с помощью порта отладки (8787) и быстро подключитесь к отладчику, пока mvn ожидает подключения к вашему проекту eclipse.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top