Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
    Aaron Schweiger
    I am trying to use akka (2.6.14)'s ScalaTestWithActorTestKit with scala 3.0.0; when run I get the following error message: java.lang.NoSuchMethodError: 'void org.scalactic.TripleEqualsSupport.$init$(org.scalactic.TripleEqualsSupport)' I am using scalatest/scalactic 3.2.9 building with mill. Any help is appreciated.
    Bill Venners
    @aschweig It looks like a version mismatch somewhere. You can look in the POM for ScalaTestWithActorTestKit and see what version of ScalaTest it is using. If you use the same version of ScalaTest you should be fine.
    Aaron Schweiger
    @bvenners I downgraded to scala 2.13.6 and things are working as expected. I was using Akka_2.13. with Scala 3.

    Hi, I upgraded to scalatest 3.2.9 from 3.0.9 and I get this compilation error:

    type mismatch;
     found   : ResultOfATypeInvocation[ScriptResult.ScriptResultFailure] (in org.scalatest.words) 
     required: ResultOfATypeInvocation[_]                                                         (in org.scalatest.matchers.dsl) 
        result.failed.get shouldBe a[ScriptResultFailure]

    but in the doc I read its supported the syntax smthg shouldBe a [Double] where am I wrong?

    Bill Venners
    @vimalaguti I don't see anything you're doing wrong. Can you make an issue here: https://github.com/scalatest/scalatest/issues
    Jorge Adriano Branco Aires

    @jorgeadriano fyi i have uploaded an example project for supersafe here: https://github.com/scalatest/supersafe-sbt-example

    Thank you @cheeseng!

    Cristian Spinetta
    hi all,
    I'm Scala-2.12 and scalatest 3.0
    I built an async test using fixture.AsyncWordSpec which works properly. The problem comes when I try to change the default execution context (which is a serial execution context provided by ScalaTest) by the global (scala.concurrent.ExecutionContext.Implicits.global). The suite is completed almost immediately with 0 tests completed. is there anything additional that needs to be done so that inner futures can run in a multi-threading execution context like the global one?
    Bill Venners
    @cspinetta Hmm. Can you paste in how you are changing the execution context?
    Cristian Spinetta
    sure! let me show you a more complete example:
    class TestWithFuturesSpec
      extends fixture.AsyncWordSpec
        with Matchers
        with Inside
        with EitherValues
        with Eventually
        with MockitoSugar {
      case class FixtureInstance(param: Int)
      implicit override def executionContext: ExecutionContext = scala.concurrent.ExecutionContext.Implicits.global
      type FixtureParam = FixtureInstance
      override def withFixture(test: OneArgAsyncTest): FutureOutcome = {
        withFixture(test.toNoArgAsyncTest(FixtureInstance(param = 1)))
      def operate(value: Int): Int = ???
      def otherOperate(value1: Int, value2: Int): Future[Int] = ???
      "test 1" should {
        "run properly" when {
          "called" in { f =>
            val f1: Future[Int] = Future(operate(f.param)) // expensive operation
            val f2: Future[Int] = Future(operate(f.param)) // expensive operation
            for {
              r1 <- f1
              r2 <- f2
              r3 <- otherOperate(r1, r2)
            } yield {
              r3 shouldBe 9999
    and the error message:
    [scalatest] Reporter completed abruptly with an exception after receiving event: SuiteCompleted(Ordinal(1, 10),TestSpec,xxxx.TestSpec,Some(xxxx.TestSpec),Some(11102),Some(MotionToSuppress),Some(TopOfClass(xxxx.TestSpec)),Some(xxxx.TestSpec),None,ScalaTest-main-running-DiscoverySuite,1624467770938).
    [scalatest] java.lang.RuntimeException: unexpected event [SuiteCompleted(Ordinal(1, 10),TestSpec,xxxx.TestSpec,Some(xxxx.TestSpec),Some(11102),Some(MotionToSuppress),Some(TopOfClass(xxxx.TestSpec)),Some(xxxx.TestSpec),None,ScalaTest-main-running-DiscoverySuite,1624467770938)]
    [scalatest]     at org.scalatest.tools.JUnitXmlReporter.unexpected(JUnitXmlReporter.scala:494)
    [scalatest]     at org.scalatest.tools.JUnitXmlReporter.processTest(JUnitXmlReporter.scala:324)
    [scalatest]     at org.scalatest.tools.JUnitXmlReporter.getTestsuite(JUnitXmlReporter.scala:166)
    [scalatest]     at org.scalatest.tools.JUnitXmlReporter.writeSuiteFile(JUnitXmlReporter.scala:76)
    [scalatest]     at org.scalatest.tools.JUnitXmlReporter.apply(JUnitXmlReporter.scala:59)
    [scalatest]     at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10(DispatchReporter.scala:249)
    [scalatest]     at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10$adapted(DispatchReporter.scala:248)
    [scalatest]     at org.scalatest.DispatchReporter$Propagator$$Lambda$2041/0x0000000000000000.apply(Unknown Source)
    [scalatest]     at scala.collection.immutable.List.foreach(List.scala:431)
    [scalatest]     at org.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:248)
    [scalatest]     at java.lang.Thread.run(Thread.java:823)
    Bill Venners
    @cspinetta Tnx for the detail. I'll research that a bit later today. I can't recall off the top of my head what the problem might be.
    @cspinetta But your code looks fine.
    Cristian Spinetta
    Thanks @bvenners ! seems to be related to using the Amazon SDK HTTP Client, because when I replaced it with a Thread.Sleep() the test run pretty well as expected
    later I will look for a work around. Any advice is more than welcome!
    caoilTe O'Connor
    Hey @bvenners. I'd be really interested in your thoughts on the challenges with updating flexmark from 0.35.10 to 0.60+ as this is something I'd be interested with helping out on (issue from last year when someone first brought it up: scalatest/scalatest#1885)
    Raphaël Fromentin
    Hello, is there a way to check if a code desugars to another ?
    Something like:
    inline def log(inline x: Double): Double = Math.log(x)
    "log(1)" should desugarTo("Math.log(1)")
    Chua Chee Seng
    @caoilte fyi i submitted the following PR for flexmark version update: scalatest/scalatest#2050
    caoilTe O'Connor
    @cheeseng just saw it and replied!
    I'm wondering whether flexmark-all no longer includes pegdown (ie you need to add it as extra dependency)
    Nicolas Rinaudo
    I've just encoutered a weird, vicious little bug
    apparently, jpath can return null
    would a PR to fix this issue be accepted?
    seems like there are duplicated codes, i'll see if can do a DRY.
    Nicolas Rinaudo
    Hi All,
    I am writing a test case in Azure Databricks using Scalatest and running my test suite using "execute" method. (Code snippet attached below)
    Now I want to export the results as XML, but in execute method I could not find any option to pass "-u <target dir>"
    Do we have any workaround for this? Thanks in advance :)
    Joseph Denman

    Hi all. I'm trying to write a set of tests that are not run by default but can be run when desired. I've created a custom config (and looked at everything I can find on this problem on Google) that allows me to select or disselect tests with the tag IELE but I'm still running into an issue. This is my SBT project definition:

    val node = {
      val node = project
        .settings(commonSettings("node"): _*)
          libraryDependencies ++= ...
          buildInfoKeys := BuildInfoKey.ofN(
            libraryDependencies in Compile
          buildInfoPackage := "...",
          buildInfoObject := "NodeBuildInfo",
          buildInfoOptions in Compile += BuildInfoOption.ToMap
          (soliditySources in Compile) ++= Seq(
            baseDirectory.value / "src" / "evmTest" / "resources" / "solidity",
            baseDirectory.value / "src" / "test" / "resources" / "solidity",
            baseDirectory.value / "src" / "precompiledContracts" / "resources" / "solidity"
          executableScriptName := name.value,
          mainClass in Compile := Some("io.iohk.ethereum.App"),
          discoveredMainClasses in Compile := Seq(),
          // Requires the 'ant-javafx.jar' that comes with Oracle JDK
          // Enables creating an executable with the configuration files, has to be run on the OS corresponding to the desired version
          jdkPackagerType := "image",
          mappings in Universal += (resourceDirectory in Compile).value / "blockchain" / "development-genesis.json" -> "conf/development-genesis.json",
          mappings in Universal += (resourceDirectory in Compile).value / "logback.xml" -> "conf/logback.xml"
      val Integration = config("it") extend Test
      scalastyleSources in Test ++= { (unmanagedSourceDirectories in Integration).value }
      val Benchmarks = config("benchmarks") extend Test
      val EvmTest = config("evmTest") extend Test
      val PrecompiledContracts = config("precompiledContracts") extend Test
      coverageExcludedPackages := "io\\.iohk\\.ethereum\\.extvm\\.msg.*"
      Test / testOptions += Tests.Argument("-l", "iele")
      val Iele = config("iele") extend Test
      Iele / testOptions -= Tests.Argument("-l", "iele")
      Iele / testOptions += Tests.Argument("-n", "iele")
        .configs(Integration, Benchmarks, EvmTest, PrecompiledContracts, Iele)
            Defaults.testSettings ++ BloopDefaults.configSettings ++ Seq(parallelExecution in Test := false)
          ): _*
        .settings(inConfig(Benchmarks)(Defaults.testSettings ++ BloopDefaults.configSettings): _*)
        .settings(inConfig(EvmTest)(Defaults.testSettings ++ BloopDefaults.configSettings): _*)
        .settings(inConfig(PrecompiledContracts)(Defaults.testSettings ++ BloopDefaults.configSettings): _*)
        .settings(inConfig(Iele)(Defaults.testSettings ++ BloopDefaults.configSettings): _*)

    When I run iele:test in SBT console it returns immediately saying no tests were run. Any ideas?

    Joseph Denman
    My tag is object IELE extends Tag("iele")
    Carsten Saager
    @aschweig I just copied ScalaTestWithActorTestKit and ActorTestKitBase into a package "testkit" in my test folder and compiled those under Scala 3.0.1 and it seems to work fine
    Steven Barnes
    Hello, I am adding scalatest to a project that uses cucumber. Now, sbt test only runs the scalatest tests. I've looked into com.waioeka.sbt cucumber-runner, but it does not seem to support scala 2.13
    Eric Peters
    Is there any way to debug the scalatest runner, I'm running some with -- -n tags.Foo and it is running other classes (specifically through sbt)
    Matt Hicks
    how do I run the same test suite multiple times iterating over a list of data values that should be used for each run? Shockingly, I've never had to do this before. :o
    1 reply
    Leif Warner
    The should contain inOrder helps don't seem to support duplicates? List(5,2,3) should contain inOrder (5,2) passes, List(5,2,5) should contain inOrder (5,2) does not.
    1 reply
    Jason Pickens
    I want to use scala test for my integration tests (DAO calls) where each call returns a future.
    Which spec is recommended for this ?
    I am sure, I cannot run two test cases at a time because it would ruin my test database.
    can some one help me to figure out which Spec suits here ? and any examples around it would be helpful.
    Carlos Eduardo de Paula
    Hi all, I'm writing a test for a funtion that returns Any, depending on it's input... I'm seeing a problem with "should be" matcher
    This is a sample:
      def dummy(): Any = true
      it should "test Any as bool" in {
        dummy() should be (true) // <- doesn't work
        dummy() should be (true.asInstanceOf[Any]) // <- works fine
    the first statement gives me overloaded method error...
    Carlos Eduardo de Paula
    I've opened an issue: scalatest/scalatest#2077 ... seems like an error since other types work fine.
    Carlos Eduardo de Paula
    :point_up: Edit: This is a sample:
      def dummy(): Any = true
      it should "test Any as bool" in {
        dummy() should be (true) // <- doesn't compile
        dummy() should be (true.asInstanceOf[Any]) // <- works fine
        dummy() should be (1) // <- compiles fine, fails as expected
    Kilic Ali-Firat

    Hey I just migrated from scalatest 3.2.0 to 3.2.1 and I see a weird behaviour in the output.
    In the 3.2.0, I see in the stdout my suite tests something like :

    - test1 
    - test2 
    All tests passed

    While in 3.2.1, I have some tests that do no passed but I only get :

    info] *** 24 TESTS FAILED ***
    [error] Failed tests:
    [error]     FunctionalTestSpec
    [error] (functional-test / Test / test) sbt.TestsFailedException: Tests unsuccessful
    [error] Total time: 87 s (01:27), completed 20 déc. 2021, 14:08:05

    I don't see now which tests are not passing which is a bit hard to debug :-D
    I've checked the releases notes and I don't have the feeling to miss something but maybe you can help me ?

    Kilic Ali-Firat
    So I've tried the 3.2.3 and now I get the output so let's say that I will forget the 3.2.1
    Mark Dixon
    abstract class Test extends Suite with FunSuiteLike with Matchers {}
    This has me stumped, does anyone know why this does not compile in 2.13 when it does in 2.12 (Scalatest 3.0.9):
    illegal trait super target found for method withFixture required by trait TimeLimitedTests;
    abstract class Context {}
    abstract class TestTest[CONTEXT <: Context] extends Test with TimeLimitedTests {