2016-02-18 15 views
8

EDIT: funziona se il file è in src/test/scala/tests/ma non in src/main/scala/mypackage/perché?scalatest: oggetto scalatest non è membro del pacchetto org

Ho provato soluzioni da argomenti con persone che hanno quasi lo stesso problema ma nessuno funziona.

Nel dettaglio, ho questo in build.sbt:

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

In IntelliJ una classe con:

import org.scalatest.{BeforeAndAfterAll, Suite} 

con {BeforeAndAfterAll, Suite} in rosso quindi credo ScalaTest è trovato

pacchetto sbt non funziona troppo:

oggetto scalatest non è un membro del pacchetto org [errore] import org.scalatest. {BeforeAndAfterAll, Suite}

ho già prova questo:

  • sbt aggiornamento pulito
  • riavvio + invalidare la cache di IntelliJ
  • rimuovere .idea/e reimportare
  • libraryDependencies + = "org.scalatest"% "scalatest_2.10"% "2.0"% "test" invece di ogf il reale
  • rituale magico sulla mia tastiera

Niente funziona

Qualche idea?

+0

Perché si desidera utilizzare il più scalabile in src/main? – Ben

+0

rimuovere il "test"% dalla dipendenza della libreria scalatest. Finché questo è lì, non si otterrà la voce richiesta nel classpath durante la fase di compilazione. – philwalk

+0

Hai risolto questo problema? Sto ottenendo lo stesso errore. Qualsiasi consiglio sarebbe utile. – Srinivas

risposta

13

si dovrebbe dare un'occhiata a 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> 

i test Scala dovrebbe andare sotto src/test/scala/.

Se davvero si vuole utilizzare ScalaTest nel principale (e si sa cosa si sta cercando di fare), provate questo:

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

Nel vostro originale build.sbt, "test" è la configurazione e significa che scalatest sarà solo sul classpath di test e non è richiesto dalle fonti principali. Questa è generalmente una buona pratica per le librerie perché gli utenti non hanno in genere bisogno delle dipendenze di test per utilizzare la libreria (ref).

+0

Dopo 45 minuti di confusione, grazie ... davvero –