scalatest : object scalatest is not a member of package org

22,677

You should take a look at sbt project structure:

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>

Your scala tests should go under src/test/scala/.

If you really want to use scalatest in main (and you know what you are trying to do), try this:

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

In your original build.sbt, "test" is the configuration and it means that scalatest will only be on the test classpath and it isn’t needed by the main sources. This is generally good practice for libraries because your users don’t typically need your test dependencies to use your library (ref).

Share:
22,677

Related videos on Youtube

Benjamin
Author by

Benjamin

Updated on February 19, 2020

Comments

  • Benjamin
    Benjamin about 4 years

    EDIT : it works if the file is in src/test/scala/tests/ but not in src/main/scala/mypackage/ Why ?

    I have try solutions from topics with people having nearly the same issue but none works.

    In details, I have this in build.sbt :

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

    In intellij a class with:

    import org.scalatest.{BeforeAndAfterAll, Suite}
    

    with {BeforeAndAfterAll, Suite} in red so i guess scalatest is found

    sbt package does not work too :

    object scalatest is not a member of package org [error] import org.scalatest. {BeforeAndAfterAll, Suite}

    I have already tries this :

    • sbt clean update
    • restart + invalidate cache of intellij
    • remove .idea/ and reimport
    • libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.0" % "test" instead ogf the actual
    • magical ritual on my keyboard

    Nothing works

    Any idea ?

    • Ben
      Ben about 8 years
      Why do you want to use scalatest in src/main?
    • philwalk
      philwalk about 8 years
      remove the % "test" from the scalatest library dependency. As long as that's there, you won't get the required entry in the classpath during the compile phase.
    • Srinivas
      Srinivas over 6 years
      Did you fix this? I am getting the same error. Any advice would be helpful.
    • Benjamin
      Benjamin over 6 years
      No, sorry Srinivas
    • Profiterole
      Profiterole over 4 years
      I had this very issue with Maven in IntelliJ. I invalidated caches and restarted but it didn't help. I reimported Maven and it fixed it.
  • Hartmut Pfarr
    Hartmut Pfarr almost 4 years
    in IntelliJ switch for a second from package view to project view, then You see the misery ;) Thanks for your help!