@@ -9,6 +9,7 @@ abstract class TestTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
9
9
_ : TestScalaVersion =>
10
10
protected lazy val extraOptions : Seq [String ] = scalaVersionArgs ++ TestUtil .extraOptions
11
11
private val utestVersion = " 0.8.3"
12
+ private val zioTestVersion = " 2.1.17"
12
13
13
14
def successfulTestInputs (directivesString : String =
14
15
s " //> using dep org.scalameta::munit:: $munitVersion" ): TestInputs = TestInputs (
@@ -811,66 +812,139 @@ abstract class TestTestDefinitions extends ScalaCliSuite with TestScalaVersionAr
811
812
}
812
813
}
813
814
815
+ test(s " zio-test warning when zio-test-sbt was not passed " ) {
816
+ TestUtil .retryOnCi() {
817
+ val expectedMessage = " Hello from zio"
818
+ TestInputs (os.rel / " Zio.test.scala" ->
819
+ s """ //> using test.dep dev.zio::zio-test:: $zioTestVersion
820
+ |import zio._
821
+ |import zio.test._
822
+ |
823
+ |object SimpleSpec extends ZIOSpecDefault {
824
+ | override def spec: Spec[TestEnvironment with Scope, Any] =
825
+ | suite("SimpleSpec")(
826
+ | test("print hello and assert true") {
827
+ | for {
828
+ | _ <- Console.printLine(" $expectedMessage")
829
+ | } yield assertTrue(true)
830
+ | }
831
+ | )
832
+ |}
833
+ | """ .stripMargin).fromRoot { root =>
834
+ val r = os.proc(TestUtil .cli, " test" , " ." , extraOptions)
835
+ .call(cwd = root, check = false , stderr = os.Pipe )
836
+ expect(r.exitCode == 1 )
837
+ val expectedWarning =
838
+ " zio-test found in the class path, zio-test-sbt should be added to run zio tests"
839
+ expect(r.err.trim().contains(expectedWarning))
840
+ }
841
+ }
842
+ }
843
+
814
844
for {
815
845
platformOptions <- Seq (
816
846
Nil , // JVM
817
847
Seq (" --native" ),
818
848
Seq (" --js" )
819
849
)
820
850
platformDescription = platformOptions.headOption.map(o => s " ( $o) " ).getOrElse(" (JVM)" )
821
- }
822
- test(s " multiple test frameworks $platformDescription" ) {
823
- val scalatestMessage = " Hello from ScalaTest"
824
- val munitMessage = " Hello from Munit"
825
- val utestMessage = " Hello from utest"
826
- TestInputs (
827
- os.rel / " project.scala" ->
828
- s """ //> using test.dep org.scalatest::scalatest::3.2.19
829
- |//> using test.dep org.scalameta::munit:: $munitVersion
830
- |//> using dep com.lihaoyi::utest:: $utestVersion
831
- | """ .stripMargin,
832
- os.rel / " scalatest.test.scala" ->
833
- s """ import org.scalatest.flatspec.AnyFlatSpec
834
- |
835
- |class ScalaTestSpec extends AnyFlatSpec {
836
- | "example" should "work" in {
837
- | assertResult(1)(1)
838
- | println(" $scalatestMessage")
839
- | }
840
- |}
841
- | """ .stripMargin,
842
- os.rel / " munit.test.scala" ->
843
- s """ import munit.FunSuite
851
+ } {
852
+ test(s " zio-test $platformDescription" ) {
853
+ TestUtil .retryOnCi() {
854
+ val expectedMessage = " Hello from zio"
855
+ TestInputs (os.rel / " Zio.test.scala" ->
856
+ s """ //> using test.dep dev.zio::zio-test:: $zioTestVersion
857
+ |//> using test.dep dev.zio::zio-test-sbt:: $zioTestVersion
858
+ |import zio._
859
+ |import zio.test._
844
860
|
845
- |class Munit extends FunSuite {
846
- | test("foo") {
847
- | assert(2 + 2 == 4)
848
- | println(" $munitMessage")
849
- | }
861
+ |object SimpleSpec extends ZIOSpecDefault {
862
+ | override def spec: Spec[TestEnvironment with Scope, Any] =
863
+ | suite("SimpleSpec")(
864
+ | test("print hello and assert true") {
865
+ | for {
866
+ | _ <- Console.printLine(" $expectedMessage")
867
+ | } yield assertTrue(true)
868
+ | }
869
+ | )
850
870
|}
851
- | """ .stripMargin,
852
- os.rel / " utest.test.scala" ->
853
- s """ import utest._
854
- |
855
- |object MyTests extends TestSuite {
856
- | val tests = Tests {
857
- | test("foo") {
858
- | assert(2 + 2 == 4)
859
- | println(" $utestMessage")
860
- | }
861
- | }
862
- |} """ .stripMargin
863
- ).fromRoot { root =>
864
- val r = os.proc(TestUtil .cli, " test" , extraOptions, " ." , platformOptions).call(cwd = root)
865
- val output = r.out.trim()
866
- expect(output.nonEmpty)
867
- expect(output.contains(scalatestMessage))
868
- expect(countSubStrings(output, scalatestMessage) == 1 )
869
- expect(output.contains(munitMessage))
870
- expect(countSubStrings(output, munitMessage) == 1 )
871
- expect(output.contains(utestMessage))
872
- expect(countSubStrings(output, utestMessage) == 1 )
873
- println(output)
871
+ | """ .stripMargin).fromRoot { root =>
872
+ val r = os.proc(TestUtil .cli, " test" , " ." , extraOptions, platformOptions).call(cwd = root)
873
+ val output = r.out.trim()
874
+ expect(output.contains(expectedMessage))
875
+ expect(countSubStrings(output, expectedMessage) == 1 )
876
+ }
874
877
}
875
878
}
879
+
880
+ test(s " multiple test frameworks $platformDescription" ) {
881
+ TestUtil .retryOnCi() {
882
+ val expectedMessages @ Seq (scalatestMessage, munitMessage, utestMessage, zioMessage) =
883
+ Seq (" Hello from ScalaTest" , " Hello from Munit" , " Hello from utest" , " Hello from zio" )
884
+ TestInputs (
885
+ os.rel / " project.scala" ->
886
+ s """ //> using test.dep org.scalatest::scalatest::3.2.19
887
+ |//> using test.dep org.scalameta::munit:: $munitVersion
888
+ |//> using dep com.lihaoyi::utest:: $utestVersion
889
+ |//> using test.dep dev.zio::zio-test:: $zioTestVersion
890
+ |//> using test.dep dev.zio::zio-test-sbt:: $zioTestVersion
891
+ | """ .stripMargin,
892
+ os.rel / " scalatest.test.scala" ->
893
+ s """ import org.scalatest.flatspec.AnyFlatSpec
894
+ |
895
+ |class ScalaTestSpec extends AnyFlatSpec {
896
+ | "example" should "work" in {
897
+ | assertResult(1)(1)
898
+ | println(" $scalatestMessage")
899
+ | }
900
+ |}
901
+ | """ .stripMargin,
902
+ os.rel / " munit.test.scala" ->
903
+ s """ import munit.FunSuite
904
+ |
905
+ |class Munit extends FunSuite {
906
+ | test("foo") {
907
+ | assert(2 + 2 == 4)
908
+ | println(" $munitMessage")
909
+ | }
910
+ |}
911
+ | """ .stripMargin,
912
+ os.rel / " utest.test.scala" ->
913
+ s """ import utest._
914
+ |
915
+ |object MyTests extends TestSuite {
916
+ | val tests = Tests {
917
+ | test("foo") {
918
+ | assert(2 + 2 == 4)
919
+ | println(" $utestMessage")
920
+ | }
921
+ | }
922
+ |} """ .stripMargin,
923
+ os.rel / " Zio.test.scala" ->
924
+ s """ import zio._
925
+ |import zio.test._
926
+ |
927
+ |object SimpleSpec extends ZIOSpecDefault {
928
+ | override def spec: Spec[TestEnvironment with Scope, Any] =
929
+ | suite("SimpleSpec")(
930
+ | test("print hello and assert true") {
931
+ | for {
932
+ | _ <- Console.printLine(" $zioMessage")
933
+ | } yield assertTrue(true)
934
+ | }
935
+ | )
936
+ |}
937
+ | """ .stripMargin
938
+ ).fromRoot { root =>
939
+ val r = os.proc(TestUtil .cli, " test" , extraOptions, " ." , platformOptions).call(cwd = root)
940
+ val output = r.out.trim()
941
+ expect(output.nonEmpty)
942
+ expectedMessages.foreach { expectedMessage =>
943
+ expect(output.contains(expectedMessage))
944
+ expect(countSubStrings(output, expectedMessage) == 1 )
945
+ }
946
+ }
947
+ }
948
+ }
949
+ }
876
950
}
0 commit comments