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

时间:2012-09-21 14:06:49

标签: eclipse scala junit 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)
  }
}

3 个答案:

答案 0 :(得分:3)

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

基本上,Eclipse junit插件期望有一个方法,它将用于所有Java JUnit测试,但对于ScalaTest测试不一定是这种情况,尤其是套件和套件。规格。

但是,您可以试用Scalatest plugin for Eclipse,这应该有效。

答案 1 :(得分:3)

您可以在ScalaTest 1.8中使用ScalaTest Eclipse插件。但是当你运行测试时它会弹出一个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运行其他测试框架。)您可以在此视频结尾看到一些Finders提供IDE支持的示例(大约10分钟进入视频):

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

答案 2 :(得分:0)

这对我有用:

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

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

enter image description here