2017-02-28 14 views
9

私はscalaが新しく、テスト用のサンプルコードはほとんど試していません。しかし、私はテストコードを実行するときにいくつかの問題に直面しています。私は、テストを実行すると、私は

FilterChecks.scalaを次のように

[trace] Stack trace suppressed: run last test:executeTests for the full output. 
[error] (test:executeTests) java.lang.NoClassDefFoundError: scala/Product$class 
[error] Total time: 3 s, completed Feb 27, 2017 6:57:15 PM 

私のコードは FileObjectに

class filterChecks extends FlatSpec { 

    "Filter checker passed a filename which is present in directory" should "return file name" in { 
    val matchingFileName = new FileObject("match") 
    val listOfFiles = List(new FileObject("random"), matchingFileName) 
    val matchedFiles = new FilterChecker("match").findMatchedFiles(listOfFiles) 
    assert(matchedFiles == List(matchingFileName)) 

    } 
} 

FilterCheckerクラス

class FilterChecker(filter : String) { 

    def matches(content : String) = content.contains(filter); 

    def findMatchedFiles(fileObjects : List[FileObject]) = { 
    for(fileObject <- fileObjects if(matches(fileObject.name))) 
     yield fileObject 
    } 

} 

でエラーを取得しています次のように

ビルドファイルは次のとおりです。

name := "testScalaProject" 

version := "1.0" 

scalaVersion := "2.12.1" 

// https://mvnrepository.com/artifact/org.scala-js/scalajs-test-interface_2.12 
libraryDependencies ++= Seq("org.scala-js" % "scalajs-test-interface_2.12" % "0.6.14", 
    "org.scalatest" % "scalatest_2.11" % "2.2.5", 
    "com.novocode" % "junit-interface" % "0.11", 
    "org.scala-lang" % "scala-library" % "2.12.1") 

誰かが問題を見つけることで私を助けることができます。ありがとうございます。

答えて

15

あなたのsbtビルドファイルが正しくありません。スカラーバージョンは2.12.xですが、スカラーバージョン2.11でコンパイルされたライブラリを使用しています。

ノートの下に示しSBTの設定を使用しない:私はscalatestのバージョンの変更2.xのバージョンは、もはやスカラ座の2.12バージョンでサポートされているよう

scalaVersion := "2.12.1" 

libraryDependencies ++= Seq(
    "org.scala-js" %% "scalajs-test-interface" % "0.6.14", 
    "org.scalatest" %% "scalatest" % "3.0.1", //version changed as these the only versions supported by 2.12 
    "com.novocode" % "junit-interface" % "0.11", 
    "org.scala-lang" % "scala-library" % scalaVersion.value 
) 

reloadcleancompileを行うことを忘れないでくださいあなたのsbtコンソールでクリーンコンパイルを開始する

+0

私は上記のビルドファイルで編集しようとしました。しかし、私はまだ同じエラーに直面しています –

+0

sbtで 'reload'、' clean'、 'compile'コマンドを実行しましたか? –

+0

私はそれをしなかった。それは後に動作します。助けてくれてありがとう:-) –