2011-12-11 69 views
5

我處於一種情況,我有一些ScalaTest書面測試(與JUnit兼容),並且我想測試運行測試時得到的codecoverage的質量。在Eclipse中測試Scala代碼覆蓋範圍

我不想直接使用SBT,但有一個Eclipse Scala項目,其中我有一些我想運行的測試用例。

什麼是我最好的方式去?

+1

你使用哪種構建工具,如果不是sbt。 Maven的?你想測試斯卡拉代碼還是你只在斯卡拉編寫測試? – Steffen

+0

我正在使用普通的eclipse「scala builder」等,當我完成後,我將這些項目導出爲eclipse插件。我想測試scala代碼,測試也是用Scala編寫的。 – StefanE

回答

3

我在Eclipse中使用EclEmma代碼覆蓋。使用更新站點進行安裝。

請注意,它不會顯示在Scala透視圖中,只顯示Java透視圖,但沒關係,因爲您仍然可以以這種方式運行基於Scala的單元測試。

當您安裝它時,它會爲您的工具欄添加一個新的「運行」按鈕。當你使用這個功能時,會運行你選擇的單元測試,生成一個覆蓋報告,並突出顯示你的代碼,以顯示已經覆蓋和未覆蓋的內容。

我剛剛用一個Scala項目測試了Scala單元測試,它似乎工作正常。

+1

EclEmma插件現在顯示在Scala視角! – Mark

+0

似乎不適用於scalatest –

+0

它的工作原理,但你需要註釋該類與junit跑步者運行 –

0

在斯卡拉我有這個工作 「普通scalatest班」

它所需要的是添加對您的scalatest類進行註釋以使其作爲Junit運行(請參閱下面的註釋)。這使用scalatests自己的junitrunner。

@RunWith(classOf [JUnitRunner]) 類MyTest的擴展FeatureSpec與匹配器與GivenWhenThen與StrictLogging {

一旦你做到了這一點,你會看到,你可以在Eclipse作爲現在運行此一等級「斯卡拉junit測試「。你也可以「覆蓋 - > junit測試」。

如果你已經安裝了eclemma插件,那麼你會看到覆蓋面板(你可能需要手動添加這個到你的scala透視圖),測試提供的覆蓋範圍,你也會看到紅色/綠色/黃色逐行覆蓋您的課程。

生活是美好的!

+0

只是爲了透露一些更多的細節,我使用的是junit 4.12,scalatest 2.2.5,eclipse mars –

+0

關於scalatest junitrunner的更多信息:http://www.scalatest.org/user_guide/using_junit_runner –