cenários de depuração JBehave
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?
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:
- Em Eclipse Executar -> Debug Configurations ...
- Selecione Maven build e clique em Novo
- Defina as metas (
clean very
no meu caso) e possíveis parâmetros - 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.