【问题标题】:How do you unit test Scala in Eclipse?如何在 Eclipse 中对 Scala 进行单元测试?
【发布时间】:2011-02-28 09:03:07
【问题描述】:

我正在学习 Scala,并希望在 Eclipse 中设置集成单元测试。 据我通过谷歌搜索得知,ScalaTest 是可行的方法,可能与 JUnit 结合使用。

您在 Eclipse 中对 Scala 进行单元测试有何经验?我应该使用 JUnit 跑步者还是其他东西?

【问题讨论】:

标签: eclipse unit-testing scala junit


【解决方案1】:

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

埃里克。

【讨论】:

  • 如果邮件列表对每个人都足够了,那么世界就不需要 Stack Overflow
  • 我同意,我自己的答案不是很有帮助:-)
【解决方案2】:

我无法在 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 以供参考。

【讨论】:

【解决方案3】:

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

【讨论】:

    【解决方案4】:

    过去几天我一直在尝试为我的项目找到与 scala 一起使用的单元测试组合,这就是我发现的。

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

    我的配置是在我的 scala 测试代码中使用 JUnit4 注释,如下所示:

    导入 org.junit._ 导入断言._ 类测试套件{ @Test def testSimple(){ asserEquals("相等",1,1) } }

    然后我使用 java JUnit 测试套件来一起运行我的所有测试,如下所示:

    导入junit.framework.Test; 导入 junit.framework.TestSuite; 导入 org.junit.runner.RunWith; 导入 org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ 测试套件类 }) 公共类 AllTests { 公共静态测试套件(){ TestSuite 套件 = new TestSuite("TestSuite"); 返回套房; } }

    唯一的附加技巧是将输出目录添加为 Eclipse 中的源目录,以便 JUnit 运行程序可以找到您的类文件。这有点骇人听闻,但似乎可行。

    Project->Properties->Java Build Path->Source->Add Folder,然后点击类(或 bin,无论您将类文件编译到何处)。

    通过右键单击 AllTests.java 并选择 RunAs->Junit,这在 Eclipse 中运行良好

    【讨论】:

    • 我发现只要我为 JUnit 添加了库引用,我只需右键单击包含注释测试代码的 scala 文件并选择 RunAs->Junit。
    • 是的,这似乎也对我有用,尽管对于我的项目来说,运行一整套测试更有用。当我尝试使用 JUnit4 注释创建一个 .scala 文件以创建我的测试套件时,它不起作用。
    【解决方案5】:

    我也无法从 Eclipse 中运行单元测试(诚然,我并没有太努力),但如果您愿意看看 IntelliJ ScalaTest 在 IDE 中的工作,没有任何问题。

    【讨论】:

    • 事实证明,JUnit runner 在 Eclipse 中为我工作了开箱即用。我只需要导入正确的包并在测试方法之前编写@test,就像在Java中一样。不过还没试过 ScalaTest。
    • 我强烈推荐使用 IntelliJ,当我开始使用 scala (persistentpanda.com/2011/03/unit-testing-with-scala.html) 进行单元测试时,Eclipse 唯一让我头疼的事情。尤其是 Maven 项目。
    猜你喜欢
    • 2011-09-22
    • 2020-07-05
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多