2009-10-02 105 views
7

我想在eclipse調試JUnit測試,但我的斷點不發射(除非他們是在第一或第二線)。調試斷點在Eclipse中不工作

我試圖刪除並重新創建所有斷點在工作區中,清潔工程,創建一個新的調試配置,並單獨運行測試方法,並與其他方法的測試類的一部分。但是都沒有用:-(

public void testLoadPatientsAndConvertToBeans() throws IOException, CDataGridException { 
    File file = fileutil.getFileFromPrefsOrPrompt(basefileDef); 

    CDataBuilder builder = new CDataDelimitedFileBuilder(file, 
    CDataDelimitedFileBuilder.DelimiterSettings.WINDOWS_CSV, 
    basefileDef); 

    // breakpoints placed on lines from here on do not fire 

    CDataCacheContainer container = 
    cacheIO.construct(
    new CDataNarrower(
     cacheIO.construct(builder) 
    ).setConvertMissing(true)); 

    assertEquals(13548, container.size()); 

    cacheIO.export(container, patients); 

    Collection<Patient> pBeans = patients.getBeans(); 

    assertEquals(container.size(), pBeans.size()); 

    Patient patient = pBeans.iterator().next(); 
    Map props = patient.getPropertyMap(); 

    System.out.println(props); 
} 

回答

7

如果您使用的是Sun JDK 6 Update 14,則可能會發生這種情況。請參閱其他similar SO question here。在這種情況下可能的解決方法是使用Sun JDK 6更新16.

+0

升級到Sun JRE 6 Update 16的確有竅門。謝謝Vineet。 – tukushan 2009-10-02 03:28:46

+0

不幸的是,我得到「投票太老,無法更改,除非答案被編輯」,並且無法贊成這一點。你可以編輯,然後我會嗎? – tukushan 2009-10-02 03:30:33

+0

+1,@tukushan你現在應該可以投票給它,如果你還沒有 – 2009-10-02 07:55:48

0

我的第一直覺是,在Eclipse中緩存類是與你的代碼同步。然而,鑑於你已經嘗試清潔/重建項目,它應該有固定的。因爲你可以在第一/第二行放置一個斷點,所以當你單步執行代碼時會發生什麼?代碼是否與每個步驟一致?如果沒有,它會顯示eclipse與源代碼有不同的類版本。如果它們是相同的,我會嘗試下載一個新的eclipse副本(我認爲你已經嘗試重新啓動你的eclipse),因爲你可能發現了一個奇怪的bug(新版本可能修復了它或者清除了一些陳舊的數據)。我不能有任何更多的幫助。

+0

的代碼並逐步和對齊。謝謝奧斯卡。 – tukushan 2009-10-02 03:26:53

相關問題