From b01f58345142249d5bc0fc78968969cc3939c3d1 Mon Sep 17 00:00:00 2001 From: Kevin Lee Date: Mon, 5 Jun 2023 20:11:08 +1000 Subject: [PATCH] Add: hedgehog to supported default testFrameworks --- sbt-app/src/sbt-test/tests/hedgehog/build.sbt | 9 +++++++++ .../src/test/scala/spec/FailureSpec.scala | 16 ++++++++++++++++ .../src/test/scala/spec/SuccessSpec.scala | 17 +++++++++++++++++ sbt-app/src/sbt-test/tests/hedgehog/test | 2 ++ testing/src/main/scala/sbt/TestFramework.scala | 3 ++- 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 sbt-app/src/sbt-test/tests/hedgehog/build.sbt create mode 100644 sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/FailureSpec.scala create mode 100644 sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/SuccessSpec.scala create mode 100644 sbt-app/src/sbt-test/tests/hedgehog/test diff --git a/sbt-app/src/sbt-test/tests/hedgehog/build.sbt b/sbt-app/src/sbt-test/tests/hedgehog/build.sbt new file mode 100644 index 000000000..61ed9f03c --- /dev/null +++ b/sbt-app/src/sbt-test/tests/hedgehog/build.sbt @@ -0,0 +1,9 @@ +ThisBuild / scalaVersion := "2.13.11" + +val hedgehogVersion = "0.10.0" + +libraryDependencies ++= Seq( + "qa.hedgehog" %% "hedgehog-core" % hedgehogVersion, + "qa.hedgehog" %% "hedgehog-runner" % hedgehogVersion, + "qa.hedgehog" %% "hedgehog-sbt" % hedgehogVersion +).map(_ % Test) diff --git a/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/FailureSpec.scala b/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/FailureSpec.scala new file mode 100644 index 000000000..05da4684f --- /dev/null +++ b/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/FailureSpec.scala @@ -0,0 +1,16 @@ +package spec + +import hedgehog._ +import hedgehog.runner._ + +object FailureSpec extends Properties { + def tests: List[Test] = + List( + example("test failure", testFailure), + ) + + def testFailure: Result = { + // expected to fail + 1 ==== 2 + } +} diff --git a/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/SuccessSpec.scala b/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/SuccessSpec.scala new file mode 100644 index 000000000..dd71589c1 --- /dev/null +++ b/sbt-app/src/sbt-test/tests/hedgehog/src/test/scala/spec/SuccessSpec.scala @@ -0,0 +1,17 @@ +package spec + +import hedgehog._ +import hedgehog.runner._ + +object SuccessSpec extends Properties { + def tests: List[Test] = + List( + property("reverse", testReverse), + ) + + def testReverse: Property = + for { + xs <- Gen.alpha.list(Range.linear(0, 100)).log("xs") + } yield xs.reverse.reverse ==== xs + +} diff --git a/sbt-app/src/sbt-test/tests/hedgehog/test b/sbt-app/src/sbt-test/tests/hedgehog/test new file mode 100644 index 000000000..7e85d1433 --- /dev/null +++ b/sbt-app/src/sbt-test/tests/hedgehog/test @@ -0,0 +1,2 @@ +> testOnly spec.SuccessSpec +-> testOnly spec.FailureSpec diff --git a/testing/src/main/scala/sbt/TestFramework.scala b/testing/src/main/scala/sbt/TestFramework.scala index ab229487f..4cd8f0ca5 100644 --- a/testing/src/main/scala/sbt/TestFramework.scala +++ b/testing/src/main/scala/sbt/TestFramework.scala @@ -29,9 +29,10 @@ object TestFrameworks { val MUnit = TestFramework("munit.Framework") val ZIOTest = TestFramework("zio.test.sbt.ZTestFramework") val WeaverTestCats = TestFramework("weaver.framework.CatsEffect") + val Hedgehog = TestFramework("hedgehog.sbt.Framework") val All: Seq[TestFramework] = - Seq(ScalaCheck, Specs2, Specs, ScalaTest, JUnit, MUnit, ZIOTest, WeaverTestCats) + Seq(ScalaCheck, Specs2, Specs, ScalaTest, JUnit, MUnit, ZIOTest, WeaverTestCats, Hedgehog) } final class TestFramework(val implClassNames: String*) extends Serializable {