2012-11-01 38 views
7

如果項目中存在(無關的!)編譯錯誤,是否有方法在Scala IDE 2.0.2(Eclipse 3.7)中運行Scala應用程序或單元測試?在Scala IDE中運行Scala應用程序,出現編譯錯誤

在Java中,這是沒有問題的,但斯卡拉IDE不斷告訴我:

項目包含編譯錯誤(因此,已經生產無二進制文件)。

我想要做的就是在主要重構過程中運行一個小測試,但我現在無法修復所有編譯錯誤。我不想開始評論事情,因爲那些編譯錯誤很好地提醒仍然需要完成的任務。

回答

4

目前的Scala IDE不支持這種行爲,但如果它能這將是很好。

要意識到這一點,我創建了一個ticket

JDT儘管允許在源編譯問題執行Java代碼。 JDT在內部用一個例外代替有缺陷的代碼,如果相關的代碼被執行,則會引發這個例外。但是如果在執行過程中永遠不會調用有缺陷的代碼,則不會發生任何錯如果SDT支持類似的行爲,那將會很好。

+0

有趣的是,我不知道JDT必須做這樣的事情來支持這個功能。我認爲它以某種方式執行完全排除了類路徑中錯誤類的程序。但是這更有意義。感謝票和解釋。 – rolve

1

如果您使用Scala 2.10,一個不錯的選擇是使用新引入的???表示法。這樣,即使函數尚未實現,您的代碼也會被編譯。

當然有更好的方法,但這個仍然會比評論代碼更好。

正如加斯帕建議,你仍然可以實現???如果你使用Scala的早期版本工作:

def ??? : Nothing = throw new Error("Not implemented") 
+0

謝謝,但我有點用Scala 2.9.2。 – rolve

+2

@rolve請注意,'???'不是新的關鍵字或對語言的改變。你可以很容易地自己編程:'def ???:Nothing =拋出新的錯誤(「未實現」)(這是Coursera Scala課程中完成的)。 – Jesper

+0

感謝您的澄清! –

相關問題