diff --git a/project/PekkoBuild.scala b/project/PekkoBuild.scala index 887a7fda1e..e9c3b7f388 100644 --- a/project/PekkoBuild.scala +++ b/project/PekkoBuild.scala @@ -280,6 +280,7 @@ object PekkoBuild { UsefulTask("testQuick *.AnySpec", "Only run a selected test. When run multiple times will only run previously failing tests (shell mode only)"), UsefulTask("testQuickUntilPassed", "Runs all tests in a continuous loop until all tests pass"), + UsefulTask("testQuickUntilPassed *.AnySpec", "Only run a selected test in a continuous loop until it passes"), UsefulTask("publishLocal", "Publish current snapshot version to local ~/.ivy2 repo"), UsefulTask("verifyCodeStyle", "Verify code style"), UsefulTask("applyCodeStyle", "Apply code style"), diff --git a/project/TestQuickUntilPassed.scala b/project/TestQuickUntilPassed.scala index ef18b938fa..1449d99ef7 100644 --- a/project/TestQuickUntilPassed.scala +++ b/project/TestQuickUntilPassed.scala @@ -17,6 +17,7 @@ import sbt._ import sbt.Keys._ +import sbt.complete.DefaultParsers.spaceDelimited import sbt.plugins.JvmPlugin object TestQuickUntilPassed extends AutoPlugin { @@ -40,10 +41,13 @@ object TestQuickUntilPassed extends AutoPlugin { } override lazy val projectSettings = { - testQuickUntilPassed := { - // TODO Figure out a way to pass input from testQuickUntilPassed into testQuickRecursive - testQuickRecursive("").value - } + testQuickUntilPassed := Def.inputTaskDyn { + val args = spaceDelimited("").parsed + val input = + if (args.nonEmpty) " " + args.mkString(" ") + else "" + testQuickRecursive(input) + }.evaluated } }