Search code examples
scalaintellij-ideascalatest

Issue in testing using scalatest


I just set up a new scala project with sbt in IntelliJ, and wrote the following basic class:

Person.scala:

package learning.functional

case class Person(
                name: String
                 )

Main.scala:

package learning.functional

import learning.functional.person

object Main{
    val p = Person("John")
}

PersonTest.scala:

import learning.functional.Person
import org.scalatest.FunSuite

class PersonTest extends FunSuite {
  test("test person") {
    val p = Person("John")
    assert(p.name == "John")
  }
}

When I try to run sbt test, it throws the following error:

## Exception when compiling 1 sources to /Users/johndooley/Desktop/Scala/scala-learning/target/scala-2.13/test-classes
[error] java.lang.AssertionError: assertion failed: 
[error]   unexpected value engine in trait FunSuite final <expandedname> private[this]
[error]      while compiling: /Users/johndooley/Desktop/Scala/scala-learning/src/test/scala/PersonTest.scala

What could be the reason for this? My build.sbt file:


ThisBuild / scalaVersion := "2.13.10"

libraryDependencies += "org.scalatest" % "scalatest_2.10" % "1.9.1"

lazy val root = (project in file("."))
  .settings(
    name := "scala-learning"
  )

Project structure:

Project Structure

I have tried invalidating cache and restarting, doing clean, update, compile, but nothing works.


Solution

  • I solved this by modifying my dependency to the following:

    libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.14"
    

    and completely reloading the sbt shell