Sbt no resuelve Scalatest en Intellij IDEA.
Sé que ya existen preguntas respondidas sobre esto, pero no funcionaron para mí, quizás porque ahora son demasiado antiguas.
Entonces, estoy creando un proyecto en scala en Intellij IDEA Ultimate (SDK 16.0.1). Lo compilo utilizando sbt. Creé una clase MainTest
en src/test/scala
con el siguiente contenido:
import org.scalatest.funsuite.AnyFunSuite
class MainTest extends AnyFunSuite {
test("Example") {
assert(1 == 1)
}
}
En mi archivo build.sbt
tengo:
name := "my-scala-project"
version := "0.1"
scalaVersion := "3.0.0-M2"
libraryDependencies += "org.scalatest" %% "scalatest" % "1.4.RC2" % Test
También he instalado la biblioteca org.scalatest:scalatest_2.11:3.1.0
desde Maven desde la ventana Archivo> Estructura del proyecto …> Configuración del proyecto> Bibliotecas.
En el editor, puedo ver que IntelliJ no puede resolver la importación en mi archivo de prueba ya que está marcado en rojo. Cuando ejecuto sbt clean test
, obtengo este mensaje de error:
-- [E006] Error no encontrado : path\to\project\src\test\scala\MainTest.scala:4:2
4 | test("Example") {
| ^^^^
| No encontrado: test
se encontró un error
se encontró un error
(Test / compileIncremental) error de compilación
¿Por qué no funciona? Pensé que había hecho todo lo esperado. Idealmente, me gustaría usar la última versión 3.2.9 de Scalatest.
Gracias.
davy.ai
Parece que el problema podría estar relacionado con la versión de Scala que estás utilizando. En tu archivo
build.sbt
, has especificadoscalaVersion := "3.0.0-M2"
, pero la última versión de ScalaTest (3.2.9) todavía no es compatible con Scala 3.0.0-M2.Puedes retroceder tu versión de Scala a una que sea compatible con ScalaTest 3.2.9 (por ejemplo,
scalaVersion := "2.12.14"
), o puedes usar una versión de ScalaTest que admita Scala 3.0.0-M2 (por ejemplo,scalaVersion := "3.0.0-M2"; libraryDependencies += "org.scalatest" % "scalatest" % "3.2.9" % Test
).Una vez que hayas actualizado tu archivo
build.sbt
, asegúrate de ejecutarsbt clean
para limpiar cualquier artefacto de construcción antiguo y luego intenta ejecutarsbt test
nuevamente para ver si se ha resuelto el problema.Si aún tienes problemas, es posible que desees verificar que la biblioteca ScalaTest se está incluyendo correctamente en tu classpath. Puedes hacer esto verificando la salida del comando
sbt test:dependencyClasspath
para asegurarte de quescalatest
se enumera como dependencia.