I have a problem in my play project. In my build.sbt i add dependency
libraryDependencies += specs2 % Test
But when I try to run a test with some arguments, an error appears
testOnly SecondSpecification -- ex "test"
java.lang.IllegalArgumentException: Argument unrecognized by ScalaTest's Runner: ex
at org.scalatest.tools.Runner$.parseArgs(Runner.scala:1414)
at org.scalatest.tools.Framework.runner(Framework.scala:915)
at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:547)
at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:541)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.Map$Map3.foreach(Map.scala:154)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.Defaults$.createTestRunners(Defaults.scala:541)
at sbt.Defaults$.allTestGroupsTask(Defaults.scala:561)
at sbt.Defaults$$anonfun$inputTests0$1$$anonfun$apply$26.apply(Defaults.scala:530)
at sbt.Defaults$$anonfun$inputTests0$1$$anonfun$apply$26.apply(Defaults.scala:521)
at sbt.std.FullInstance$$anonfun$flattenFun$1$$anonfun$apply$4$$anonfun$apply$5.apply(TaskMacro.scala:61)
at sbt.std.FullInstance$$anonfun$flattenFun$1$$anonfun$apply$4$$anonfun$apply$5.apply(TaskMacro.scala:61)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:237)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)
As you can see from the error - scalaTest runner started instead of specs2 runner, why?
When you try to run tests with sbt both specs2 and ScalaTest test runners are being invoked. And ScalaTest throws exceptions when there are unknown command line parameters.
You can fix this with the following setting in build.sbt
testFrameworks := Seq(TestFrameworks.Specs2)