web-dev-qa-db-ja.com

scalatest:オブジェクトscalatestはパッケージorgのメンバーではありません

[〜#〜] edit [〜#〜]:ファイルがsrc/test/scala/tests /にあるがsrc/main/scala/mypackage /にない場合に機能します。なぜですか?

私はほとんど同じ問題を抱えている人々がいるトピックからの解決策を試しましたが、どれもうまくいきません。

詳細には、私はこれをbuild.sbtに持っています:

libraryDependencies ++= Seq(
   ...
  "org.scalatest" % "scalatest_2.10" % "2.2.1" % "test",
   ...

Intellijのクラス:

import org.scalatest.{BeforeAndAfterAll, Suite}

{BeforeAndAfterAll、Suite}が赤で表示されているので、scalatestが見つかると思います

sbtパッケージも機能しません:

オブジェクトscalatestはパッケージorg [error] import org.scalatestのメンバーではありません。 {BeforeAndAfterAll、Suite}

私はすでにこれを試しました:

  • sbt clean update
  • 再起動+ intellijのキャッシュを無効化
  • .idea /を削除して再インポート
  • libraryDependencies + = "org.scalatest"% "scalatest_2.10"% "2.0"% "test"代わりに実際のogf
  • 私のキーボードの魔法の儀式

何も動作しません

何か案が ?

14
Benjamin

sbtプロジェクトの構造 を見てください。

src/
  main/
    resources/
       <files to include in main jar here>
    scala/
       <main Scala sources>
    Java/
       <main Java sources>
  test/
    resources
       <files to include in test jar here>
    scala/
       <test Scala sources>
    Java/
       <test Java sources>

あなたのscalaテストはsrc/test/scala/

あなたが本当にメインでscalatestを使いたいなら(そしてあなたが何をしようとしているのかわかっているなら)、これを試してください:

  "org.scalatest" % "scalatest_2.10" % "2.2.1",

元のbuild.sbt、「テスト」は構成であり、これはscalatestがテストクラスパス上にのみ存在し、メインソースでは必要ないことを意味します。ユーザーは通常、ライブラリを使用するためにテストの依存関係を必要としないので、これはライブラリにとって一般的に良い習慣です( ref )。

20
Onilton Maciel