2017-03-07 4 views
0

Ich habe ein Eclipse-Scala-Projekt, das Maven verwendet. Eclipse Plugins für ScalaIDE und Scalatest sind installiert. Ich habe Tests wie:Scalatest mit Eclipse zeigt Fehler bei der Verwendung von Matchers

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 
      } 
     } 
    } 

Die Maven Kompilation und die Tests laufen in Ordnung, aber in Eclipse, wenn ich diese Datei öffnen, sehe ich einen Fehler in der Finsternis, wo ich ein Matcher bin, wie oben in den Kommentaren erwähnt. Z.B.

value shouldBe is not a member of Long 

Was fehlt mir? Eine Scala-Testdatei zeigt Hunderte von Problemen.

+0

Wie haben Sie das Projekt in die IDE importiert? Ist in "Java Build Path" -> "Bibliotheken" -> "Maven-Container (oder wie auch immer es heißt)" am einfachsten zu sehen? Ist die Scala-Version in "Scala-Compiler" -> "Scala-Installation" die gleiche wie die in POM deklarierte? – MirMasej

+0

Es ist in der Tat unter "Java-Build-Pfad - Bibliotheken - Maven Abhängigkeiten - Scalatest" vorhanden. Ja Scala-Version ist in beiden Orten gleich. – rgamber

+0

Haben Sie [in Matcher gemischt] (http://www.scalatest.org/user_guide/using_matchers) in Spec? – MirMasej

Antwort

0

Nach dem Hinzufügen der folgenden Blindkode:

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() 
} 

und FlatSpec-FeatureSpec, da dies zu ändern ist the syntax Sie in Ihrem ExampleSpec verwenden, kompiliert der Code ohne Probleme.

Wenn es immer noch nicht der Fall für Sie ist, kann ich vorschlagen, einfach build.sbt zu erstellen und Projekt mit Eclipse sbt plugin zu generieren.

Verwandte Themen