Cannot Find GeneratorDrivenPropertyChecks Trait
Asked Answered
E

1

10

I have these test dependencies defined

/ Test Dependencies
lazy val wiremock             = "com.github.tomakehurst"      % "wiremock-jre8"             % "2.25.1"
lazy val playTest             = "com.typesafe.play"          %% "play-test"                 % "2.8.1"
lazy val scalaTestPlusPlay    = "org.scalatestplus.play"     %% "scalatestplus-play"        % "5.1.0"
lazy val mockito              = "org.mockito"                %% "mockito-scala"             % "1.10.2"
lazy val scalamock            = "org.scalamock"              %% "scalamock"                 % "4.4.0"
lazy val scalacheck_shapeless = "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % "1.2.3"
lazy val scalatest            = "org.scalatest"              %% "scalatest"                 % "3.1.1"

But I cannot find this trait to mix into my test spec class: GeneratorDrivenPropertyChecks. I am not sure what I am missing here in terms of dependencies. Under org.scalatest.prop I don't see this trait. I only see TableDrivenPropertyChecks.

Eldredge answered 12/5, 2020 at 22:27 Comment(0)
H
17

GeneratorDrivenPropertyChecks seems to have been removed in ScalaTest 3.1.0

We made it private so that it would not hold up the 3.1.0 release any longer. I wanted to investigate a better way to integrate shrinking, as has been done by tools such as Hedgehog. The 3.2.0 release we wanted to be exactly the same as 3.1.0 except for modularization. After that we plan to complete and release ScalaTest's Generator. Meanwhile we figured everyone would continue to use ScalaCheckDrivenPropertyChecks and Gen, which is available here:

https://github.com/scalatest/scalatestplus-scalacheck

Instead try using ScalaCheckDrivenPropertyChecks like so

import org.scalacheck.Gen
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
import org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks

class HelloSpec extends AnyFlatSpec with Matchers with ScalaCheckDrivenPropertyChecks {
  "ScalaCheckDrivenPropertyChecks" should "provide forAll" in {
    forAll(Gen.choose(1, 100)) { i =>
      i shouldBe i
    }
  }
}

where

libraryDependencies ++= Seq(
  "org.scalatestplus" %% "scalacheck-1-14" % "3.1.1.1" % Test,
  "org.scalatest" %% "scalatest" % "3.1.1" % Test
)
Hakon answered 12/5, 2020 at 22:54 Comment(4)
We're at version 3.2.0, and the docs still refer to the old non-existent traits. It's taken me 25 minutes to find this answer after trying to figure it out in various blogs and their GitHub :/ Hvala Mario!Et
@Zoltán The docs seem to be drifting slightly out-of-date as some significant changes were introduced to prepare for 3.2.0. I am guessing now that 3.2.0 is out, the docs will begin to catch up (note I have no evidence for that). Personally, for most up-to-date information I follow links at github.com/scalatest/scalatest/releases.Hakon
These are major backwards-incompatible change and they really seem to call for a major version bump. They don't appear to be described, so it's hard to go through and find 1-1 replacements for GeneratorDrivenPropertyChecks, PropSpec, etc.Equilibrist
The above seemed to be not found but this worked for me: "org.scalatestplus" % "scalacheck-1-15_3" % "3.2.10.0" % "test"Thorvaldsen

© 2022 - 2024 — McMap. All rights reserved.