你如何在Eclipse中对Scala进行单元测试?

时间:2010-06-06 12:41:41

标签: eclipse unit-testing scala junit

我正在学习Scala,并希望在Eclipse中设置集成单元测试。 据我在google搜索中可以看出,ScalaTest是可行的方法,可能与JUnit结合使用。

您在Eclipse中对Scala进行单元测试有哪些经验?我应该使用JUnit跑步者还是别的什么?

5 个答案:

答案 0 :(得分:7)

ScalaIDE网站how to run Scala unit tests in Eclipse上有一个wiki页面。如果您在运行规范单元测试时遇到特定问题,我建议您在specs-users邮件列表上发布消息。

埃里克。

答案 1 :(得分: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以供参考。

答案 2 :(得分:5)

只是为了让答案保持最新:ScalaTest现在附带一个eclipse plugin,它可以处理从Eclipse开始运行的测试。

答案 3 :(得分:2)

我花了这么多天试图找到与我的项目的scala一起使用的单元测试的组合,这就是我发现的。

我正在使用Scala 2.8的候选版本,因为它修复了一些在2.7.2中阻止我的错误。我最初试图让Scalatest使用2.8,但无法找到一个稳定的解决方案,将来这可能是一个更好的方法,但目前在2.8版本中似乎有太大的变化。

我正在使用的配置是在我的scala测试代码中使用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-&gt; Properties-&gt; Java Build Path-&gt; Source-&gt; Add Folder然后点击类(或bin,无论你在哪里编译类文件)。

通过右键单击AllTests.java并选择RunAs-&gt; Junit

,这在Eclipse中运行良好

答案 4 :(得分:1)

我无法从Eclipse运行单元测试(不可否认我没有太努力),但是如果你愿意看看IntelliJ ScalaTest在IDE中运行没有问题。

相关问题