Pergunta

Estou tendo problemas para depuração meus testes JBehave. Não consigo me Maven para iniciar os testes JBehave e parar em um ponto de interrupção. Eu tenho isso no meu pom:

<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>

e eu tentei coisas como:

$  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

e

$ export MVN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" ; mvn -Dtest=MyTest clean test 

Eu posso tentar usar jsadebugd , mas que provavelmente vai exigir tempo imaculada para automatizar, de forma que soa como uma solução sub-óptima, e eu sinto que o plugin JBehave Maven deve fornecer essa funcionalidade. Claramente eu não ter encontrado a parte direita de documetation ainda. Alguma idéia de como eu vou sobre isso?

Foi útil?

Solução

A seguir trabalhou para mim: exportação MAVEN_OPTS = "- Xdebug -Xrunjdwp: transporte = dt_socket, servidor = y, suspender = y, address = 8787 -Xnoagent -Djava.compiler = NONE"

, em seguida, começar meus testes MVn: mvn instalar

(maven agora trava aguardando o depurador para conectar)

Em seguida, inicie o Eclipse em uma sessão de depuração remota, apontando para host local, a porta 8787 (como acima), com pontos de interrupção apropriadas definidas.

Outras dicas

Não seria mais fácil não começar os testes com Maven, mas sim no IDE com JUnit? Então você pode usar o depurador diretamente? I normalmente fazê-lo assim, que os usos servidor CI Maven para executar JBehave, mas no IDE, eu prefiro uma maneira mais direta de execução.

Isso funcionou para mim:

  1. Em Eclipse Executar -> Debug Configurations ...
  2. Selecione Maven build e clique em Novo
  3. Defina as metas (clean very no meu caso) e possíveis parâmetros
  4. Hit Debug

mvn -e -o -Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transporte = dt_socket, servidor = y, suspender = y, address = 8787 -Xnoagent -Djava.compiler = NONE" integração-test

Esta linha funcionou perfeito para mim. Setup seu projeto JBehave no eclipse com a porta de depuração (8787) e se conectar ao depurador rapidamente enquanto mvn está esperando para se conectar ao seu projeto eclipse.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top