Domanda

Ho problemi di debug miei test jbehave. Non riesco a Maven per iniziare i test jbehave e fermarsi a un punto di interruzione. Ho questo nel mio 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 ho provato cose come:

$  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 

Posso provare a usare jsadebugd , ma che probabilmente richiederà tempi immacolata per automatizzare, in modo che suona come una soluzione non ottimale, e mi sento come il plugin Maven JBehave dovrebbe fornire questa funzionalità. Chiaramente ho appena non ancora trovato il giusto pezzo di documetation. Tutte le idee come posso fare per questo?

È stato utile?

Soluzione

Di seguito ha lavorato per me: MAVEN_OPTS export = "- Xdebug -Xrunjdwp: trasporti = dt_socket, server = y, sospendere = y, indirizzo = 8787 -Xnoagent -Djava.compiler = NONE"

quindi avviare i miei test MVN: mvn install

(Maven pende ora in attesa per il debugger di collegamento)

Quindi avviare Eclipse in una sessione di debug remoto, indicando host locale, la porta 8787 (come sopra), con i punti di interruzione a opportune.

Altri suggerimenti

Non sarebbe più facile non iniziare i test con Maven, ma piuttosto nel IDE con JUnit? Quindi è possibile utilizzare direttamente il debugger? Io di solito faccio così, che il server CI utilizza Maven per eseguire JBehave, ma nell'IDE, preferisco un modo più diretto di esecuzione.

Questo ha funzionato per me:

  1. In Eclipse Esegui -> Debug Configurations ...
  2. Seleziona Maven Costruire e fare clic su Nuovo
  3. Imposta gli obiettivi (clean very nel mio caso) ed eventuali parametri
  4. Hit Debug

mvn -e -o -Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: trasporti = dt_socket, server = y, sospendere = y, indirizzo = 8787 -Xnoagent -Djava.compiler = NONE" integrazione-test

Questa linea ha funzionato perfetto per me. Imposta il tuo progetto di Jbehave in Eclipse con la porta di debug (8787) e collegare al debugger velocemente, mentre mvn è in attesa di connettersi al progetto Eclipse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top