我有一个使用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测试文件显示了数百个问题。
答案 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”添加到测试的开头,然后将测试移至该软件包中。