使用Matchers时,使用eclipse的Scalatest会显示错误

时间:2017-03-07 00:30:36

标签: eclipse scala maven scalatest scala-ide

我有一个使用maven的eclipse scala项目。安装了ScalaIDE和Scalatest的Eclipse插件。我有测试:

    import org.scalatest._

    class ExampleSpec extends FlatSpec with Matchers {
        feature("Feature A Test") {
            scenario("Foo scenario 1") {
              val a = FooClass().getResult()
              a.count shouldBe 1  // IDE shows error: value shouldBe is not a member of Long
              a(0).getString(0) shouldBe "FOO"  // IDE shows error: value shouldBe is not a member of String
            }
        }
    }

maven编译和测试运行正常,但是在我打开这个文件的eclipse中,无论我在上面的评论中提到的Matcher,我都会看到eclipse中的错误。例如

value shouldBe is not a member of Long

我错过了什么? scala测试文件显示了数百个问题。

2 个答案:

答案 0 :(得分:0)

添加以下虚拟代码后:

case class Bar() {
    def count = Array(Bar())
    def getString(x: Int) = Array("aqq")
    def apply[T](x: Int) = this
}
case class FooClass() {
   def getResult() = Bar()
}

并将FlatSpec更改为FeatureSpec,因为您在ExampleSpec中使用the syntax,代码会毫无问题地编译。

如果您仍然不是这样,我可以建议创建简单的build.sbt并使用Eclipse sbt plugin生成项目。

答案 1 :(得分:0)

我知道这很旧,但是我在Eclipse(2018年末)上遇到了同样的问题,我能够通过确保测试不在默认软件包中来解决此问题。也就是说,作为示例,将“ package org.scalatest.examples.flatspec”添加到测试的开头,然后将测试移至该软件包中。