2009-04-08 81 views
3

我在調試jbehave測試時遇到問題。我無法讓maven開始jbehave測試並停在斷點處。我有這個在我的POM:調試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插件應該提供這種功能。很明顯,我還沒有找到正確的文檔。任何想法,我怎麼去做這件事?

回答

1

以下爲我工作: 出口MAVEN_OPTS = 「 - Xdebug的-Xrunjdwp:交通= dt_socket,服務器= Y,暫停= Y,地址= 8787 -Xnoagent -Djava.compiler = NONE」

再啓動我MVN測試: MVN安裝

(行家現在掛等待調試器連接)

然後在遠程調試會話啓動Eclipse,在本地主機的指點下,端口8787(如上),用適當的斷點組。

0

如果不使用maven啓動測試,而是使用JUnit進行IDE測試,會不會更容易?那麼你可以直接使用調試器?我通常這樣做,CI服務器使用maven來執行JBehave,但在IDE中,我更喜歡更直接的執行方式。

+0

如果測試必須在不同於您的IDE的計算機上運行,​​則不應該這樣做 – l0st3d 2012-06-25 10:28:45

-1

MVN -e -o -Dmaven.surefire.debug = 「 - Xdebug的-Xrunjdwp:交通= dt_socket,服務器= Y,暫停= Y,地址= 8787 -Xnoagent -Djava.compiler = NONE」 集成測試

這條線適合我。使用調試端口(8787)在eclipse 中設置Jbehave項目,並在mvn等待連接到您的eclipse項目時快速連接到調試器。

+0

這與現有答案中的一個幾乎完全相同。重複它所說的一切有什麼意義? – 2016-10-13 20:00:50