2010-06-06 94 views
15

我正在學習Scala,並希望在Eclipse中設置集成的單元測試。 據我可以從谷歌搜索可以看出,ScalaTest是要走的路,可能與JUnit組合。你如何在Eclipse中測試Scala?

在Eclipse中對單元測試Scala有什麼經驗?我應該使用JUnit跑步者還是其他?

+2

我還沒有嘗試過,但這裏有一些文檔:https://www.assembla.com/wiki/show/scala-ide/Using_Unit_Testing_Frameworks – 2010-06-06 15:16:33

+1

@Matt謝謝,這是有效的 - 你應該添加它作爲答案,實際上。 – 2010-06-06 20:18:39

回答

5

只是爲了讓答案保持最新:ScalaTest現在帶有一個eclipse plugin,它應該可以從Eclipse開箱即可處理運行測試。

6

我無法在eclipse中使用JUnit runner運行ScalaTest規範。我認爲這是因爲缺少@Test註釋的方法。但是,如果您的項目具有Maven支持,則可以使用mvn test從命令行運行您的規格。對於Surefire插件來檢測您的規格,請在您的pom文件中使用以下配置。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
    <includes> 
    <include>**/*Spec.class</include> 
    </includes> 
    </configuration> 
</plugin> 

檢查出these example作爲參考。

+0

這已得到改進 - 請參閱@ Eric的指向該網站的指示:http://www.assembla。com/wiki/show/scala-ide/Using_Unit_Testing_Frameworks – 2012-06-13 15:43:41

1

我無法從Eclipse運行單元測試(雖然我沒有太努力),但是如果你願意從IDE內部看看IntelliJ ScalaTest的工作原理而不會出現任何問題。

+0

事實證明,JUnit runner在Eclipse中爲我開箱即用。我只需導入正確的軟件包並在測試方法之前寫入@test,就像在Java中一樣。儘管如此,還沒有嘗試過ScalaTest。 – 2010-06-10 08:46:42

+0

我強烈推薦使用IntelliJ,當我開始使用scala進行單元測試時(http://www.persistentpanda.com/2011/03/unit-testing-with-scala.html),Eclipse給我的唯一一件事就是頭疼。尤其是Maven項目。 – 2011-04-01 12:23:45

2

我花了幾天的時間試圖找到與我的項目的scala一起工作的單元測試的組合,這就是我發現的。

我正在使用Scala 2.8的候選版本,因爲它修復了一些在2.7.2中阻止我的bug。我最初試圖讓Scalatest與2.8一起工作,但未能找到一個穩定的解決方案,未來可能是一個更好的方法,但目前在2.8版本中似乎有太多的變化。

我有工作的配置是使用JUnit4註解在我的斯卡拉測試代碼如下所示:

 
import org.junit._ 

import Assert._ 

class TestSuite{ 

    @Test def testSimple(){ 
    asserEquals("Equal",1,1) 
    } 
} 

然後我使用的是Java的JUnit測試套件來運行我的所有測試在一起,就像這樣:

 
import junit.framework.Test; 
import junit.framework.TestSuite; 
import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    TestSuite.class 
    }) 
public class AllTests { 

    public static Test suite() { 
    TestSuite suite = new TestSuite("Test Suite"); 
    return suite; 
    } 

} 

唯一的附加技巧是將輸出目錄添加爲Eclipse中的源目錄,以便JUnit運行器可以找到您的類文件。這有點破解,但似乎有效。

Project-> Properties-> Java Build Path-> Source-> Add Folder然後點擊類(或bin,無論你在編譯你的類文件到哪裏)。

這對AllTests.java運行正常在Eclipse中通過右擊並選擇RunAs->的Junit

+0

我發現只要右鍵單擊包含帶註釋的測試代碼的scala文件,並選擇RunAs-> Junit,前提是我已經爲JUnit添加了庫引用。 – 2010-07-09 17:45:47

+0

是的,這似乎也適用於我,但對於我的項目運行一整套測試更有用。當我嘗試使用JUnit4註釋創建一個.scala文件來創建我的測試套件時,它不起作用。 – gbrown 2010-07-09 18:13:32

7

有上how to run Scala unit tests in Eclipse的ScalaIDE網站上的維基頁面。如果您在運行規格單元測試時遇到特定問題,我鼓勵您在specs-users郵件列表上發佈消息。

Eric。

+1

如果郵件列表對於每個人都是足夠的,那麼世界將不需要堆棧溢出 – 2014-04-08 03:38:46

+0

我同意,我自己不是一個非常有用的答案:-) – Eric 2014-04-08 03:51:59