How to use playframework 2.3 with specs2 2.4 instead of specs2 2.3.x

Specs2 has recently been updated to version 2.4, in which instead of scalaz 7.1 instead of 7.0.x now. As soon as I update my dependency specs2 in my game! 2.3 to use version 2.4, all tests fail with the following exception:

[error] Uncaught exception when running ...Spec: java.lang.In compatibleClassChangeError: Found class scalaz.syntax.FunctorOps, but interface was expected sbt.ForkMain$ForkError: Found class scalaz.syntax.FunctorOps, but interface was expected at org.specs2.specification.SpecificationStructure$.createSpecificationEither(BaseSpecification.scala:119) at org.specs2.runner.SbtRunner.org$specs2$runner$SbtRunner$$specificationRun(SbtRunner.scala:73) at org.specs2.runner.SbtRunner$$anonfun$newTask$1$$anon$5.execute(SbtRunner.scala:59) at sbt.ForkMain$Run$2.call(ForkMain.java:294) at sbt.ForkMain$Run$2.call(ForkMain.java:284) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 

No one seems to have had this error before. At least I could not find it in specs2 problem tracking systems and play the project.

+6
source share
2 answers

I make it work in Play 2.3.8 with these settings.

  "org.scalaz" %% "scalaz-core" % "7.1.1", "com.typesafe.play" %% "play-test" % "2.3.8" % "test" excludeAll( ExclusionRule(organization = "org.specs2") ), "org.specs2" %% "specs2-core" % "3.5" % "test", "org.specs2" %% "specs2-junit" % "3.5" % "test", "org.specs2" %% "specs2-mock" % "3.5" % "test" 
+5
source

"com.typesafe.play" %% "play-test" % "2.3.3" depends on specs2 2.3.12 , and specs2 2.3.12 depends on scalaz 7.0.6

You may / should not use them together. because scalaz 7.0.6 and 7.1.0 binary are not compatible.

If you want to use play2 and scalaz 7.1 together, I think there are some solutions

+5
source

Source: https://habr.com/ru/post/973749/


All Articles