6

我正在上 Martin Odersky Coursera 课程,作业使用 ScalaTest。Eclipse 无法在 JUnit 运行器中双击或右键单击“Go to File”找到测试方法,这很烦人。

双击后,“找不到方法' 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)
  }
}
4

3 回答 3

3

是的,这是 Eclipse 的 JUnit 插件中的一个已知错误。这也很难解决(对于 jun it 插件)。

基本上,Eclipse junit 插件期望有一个方法,所有 java JUnit 测试都会有这个方法,但 ScalaTest 测试不一定是这种情况,尤其是 Suites & Specs。

但是,您可以试用Eclipse 的 Scalatest 插件,它应该可以工作。

于 2012-09-21T15:05:43.090 回答
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 运行其他测试框架。)您可以在本视频的末尾(视频大约 10 分钟)看到一些 Finders 提供 IDE 支持的示例:

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

于 2012-09-23T08:17:30.777 回答
0

这对我有用:

1-在您的文件夹项目中打开一个控制台并执行“sbt”。

2-(不退出“sbt”)执行“eclipse”命令。

在此处输入图像描述

于 2016-06-16T13:00:24.550 回答