Eclipse JUnit运行器在双击时找不到ScalaTest方法

Jef*_*rod 6 eclipse junit scala scalatest

我正在参加Martin Odersky Coursera课程并且作业使用ScalaTest.Eclipse无法在双击时找到测试方法或右键单击JUnit运行器中的"转到文件",这非常令人讨厌.

双击后,找不到"方法' xxx '.打开测试类." 弹出对话框.

是否存在配置问题或者这是ScalaTest错误/限制?

这是来自班级的示例ScalaTest:

package recfun

import org.scalatest.FunSuite

import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class CountChangeSuite extends FunSuite {
  import Main.countChange
  test("manual") {
    assert(countChange(4,List(1,2)) === 3)
  }
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*ers 3

您可以将 ScalaTest Eclipse 插件与 ScalaTest 1.8 结合使用。但是当你运行测试时,它会弹出一个 GUI。很有用,但不如 ScalaTest 2.0 集成那么好。我认为您在 Coursera 课程中使用的是 1.8。

您在使用 JUnit 时遇到的实际问题是我们尝试在 ScalaTest 中解决的问题。JUnit 不仅是一个测试框架,它还是一个测试平台,您可以通过其 @RunWith 注解运行其他框架。在本例中,您通过 JUnit 运行 ScalaTest。但是,您无法通过 @RunWith 注释获得完整的 IDE 支持,您只是获得运行的能力。这确实是JUnit 的一个限制。您希望通过 JUnit 运行的测试框架(在本例中为 ScalaTest)也获得 IDE 支持。使用 JUnit 实现这一点的唯一方法是为您的测试框架编写 IDE 插件,这是一项艰巨的工作。

作为 ScalaTest 项目的一部分,我们一直致力于此工作,制作插件或帮助制作插件,为 ScalaTest 用户提供全面的 IDE 支持。但作为这项工作的一部分,我们还提出了“Finder”的概念,可用于在其他测试框架通过 ScalaTest 运行时为其提供完整的 IDE 支持。(即,就像您可以通过 JUnit 运行其他测试框架一样,您也可以通过 ScalaTest 运行其他测试框架。)您可以在本视频末尾看到一些提供 IDE 支持的 Finders 示例(视频大约 10 分钟):

http://skillsmatter.com/podcast/scala/scalatest-scalamock-subcut