2012-12-03 110 views
8

運行Ant JUnit的目標這是我的ANT JUnit的目標,如果通過Eclipse中運行,但如果我從ANT laund他們失敗試圖在調試模式在Eclipse

<target name="test" depends="compile" > 
    <junit failureProperty="test.failure" > 

     <jvmarg value="-Xdebug" /> 
     <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" /> 

     <classpath> 
      <pathelement path="${basedir}\..\Core\lib\junit-4.10.jar"/> 
      <pathelement path="${basedir}\..\Suggestion\lib\ssce.jar"/> 
      <pathelement path="C:\Java\javamail-1.4.1\mail.jar"/> 
      <pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/> 
      <pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/> 
      <pathelement path="${tomcatLibs}\servlet-api.jar"/> 
     </classpath> 
     <classpath> 
      <pathelement path="${build}"/> 
     </classpath> 
     <formatter type="brief" usefile="false" />   
     <test name="com.server.junit.ServerTestSuite" /> 
     <test name="com.junit.DictionaryTestSuite" /> 
     <test name="com.util.junit.SuggestionTestSuite" />    
    </junit> 

    <fail message="Unit test failed" if="test.failure"/> 
</target> 

我的單元測試通過罰款。 我希望它在單元測試中的中斷點停下來。 從文檔我知道我需要添加這些jvmarg,但不能讓它停下來,所以我顯然沒有他們在正確的地方。 此外,我不認爲我有端口正確,但我應該使用什麼端口?我沒有通過月食調試JUnits時設置任何調試端口,它只是工作

回答

10

您需要忘記您可以在Eclipse中運行JUnit測試和ANT目標的時刻。你想要的是調試恰好具有主類org.apache.tools.ant.Main的Java應用程序,並且可以從命令行以ant開始。

現在你有兩個選擇:你可以創建一個啓動配置調用org.apache.tools.ant.Main但這是相當複雜的設置(你將不得不復制的ant腳本確實在啓動一切)。

另一種方法是正確配置ant。在你的情況下,測試在ant進程中運行,但我知道沒有簡單的方法將-Xdebug傳遞給Ant本身。因此,您必須在新過程中運行測試。這增加了junit任務:

<junit fork="yes" forkmode="once" ...> 

沒有這一點,jvmarg參數將被忽略。

下一步是在Eclipse中創建一個調試配置。 This article詳細解釋了這一點。對你來說,只有在「結論」之前的最後一部分很重要。

+0

這兩個答案都對我有幫助,但更多的是這樣。 Thnx – MayoMan

+0

forkmode =曾經是我需要的魔法!那麼工作upvote ;-) –

4

詳細說明:

  1. 在Eclipse中,導航運行|調試。
  2. 選擇左側欄中的「遠程Java應用程序」。點擊同一列底部的新建。
  3. 在創建配置屏幕中,系統會提示您輸入一些值。從一個有意義的名字開始。對於Project,選擇包含要調試的源代碼的Java項目。保持連接類型爲默認值,即標準(套接字連接)。對於主機,輸入localhost。如果要調試遠程服務器,請輸入其主機名或IP地址。對於端口,請輸入5432.
  4. 單擊應用。
  5. 確保您的測試在調試模式下運行。在同一個屏幕上點擊調試。 Eclipse應該自動帶您進入Debug透視圖,並且您應該在Debug視圖中看到堆棧跟蹤。
  6. 如果您沒有自動進入Debug透視圖,請選擇Window |開放視角|其他然後單擊調試。

摘自here

+0

你是什麼意思「確保你的測試在調試模式下運行?」我應該在運行我的螞蟻目標之前運行我的測試課嗎? – PunDefeated