diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index 13c90ed61e..2ffe034c3c 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -85,7 +85,7 @@ object AkkaBuild extends Build { extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src => (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, - scalatestOptions in MultiJvm := Seq("-r", "org.scalatest.akka.QuietReporter"), + scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, jvmOptions in MultiJvm := defaultMultiJvmOptions, test in Test <<= ((test in Test), (test in MultiJvm)) map { case x => x } ) @@ -101,7 +101,7 @@ object AkkaBuild extends Build { extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src => (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, - scalatestOptions in MultiJvm := Seq("-r", "org.scalatest.akka.QuietReporter"), + scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, jvmOptions in MultiJvm := defaultMultiJvmOptions, test in Test <<= ((test in Test), (test in MultiJvm)) map { case x => x } ) @@ -118,7 +118,7 @@ object AkkaBuild extends Build { extraOptions in MultiJvm <<= (sourceDirectory in MultiJvm) { src => (name: String) => (src ** (name + ".conf")).get.headOption.map("-Dakka.config=" + _.absolutePath).toSeq }, - scalatestOptions in MultiJvm := Seq("-r", "org.scalatest.akka.QuietReporter"), + scalatestOptions in MultiJvm := defaultMultiJvmScalatestOptions, jvmOptions in MultiJvm := defaultMultiJvmOptions, test in Test <<= ((test in Test), (test in MultiJvm)) map { case x => x } ) @@ -298,7 +298,7 @@ object AkkaBuild extends Build { val defaultExcludedTags = Seq("timing", "long-running") - val defaultMultiJvmOptions: Seq[String] = { + lazy val defaultMultiJvmOptions: Seq[String] = { (System.getProperty("akka.test.timefactor") match { case null => Nil case x => List("-Dakka.test.timefactor=" + x) @@ -306,6 +306,31 @@ object AkkaBuild extends Build { (if (getBoolean("sbt.log.noformat")) List("-Dakka.test.nocolor=true") else Nil) } + // for excluding tests by name (or use system property: -Dakka.test.names.exclude=TimingSpec) + lazy val defaultExcludeTestNames: Seq[String] = { + val exclude = System.getProperty("akka.test.names.exclude", "") + if (exclude.isEmpty) Seq.empty else exclude.split(",").toSeq + } + + // for excluding tests by tag (or use system property: -Dakka.test.tags.exclude=timing) + lazy val defaultExcludeTestTags: Seq[String] = { + val exclude = System.getProperty("akka.test.tags.exclude", "") + if (exclude.isEmpty) defaultExcludedTags else exclude.split(",").toSeq + } + + // for including tests by tag (or use system property: -Dakka.test.tags.include=timing) + lazy val defaultIncludeTestTags: Seq[String] = { + val include = System.getProperty("akka.test.tags.include", "") + if (include.isEmpty) Seq.empty else include.split(",").toSeq + } + + lazy val defaultMultiJvmScalatestOptions: Seq[String] = { + val excludeTags = (defaultExcludeTestTags.toSet -- defaultIncludeTestTags.toSet).toSeq + Seq("-r", "org.scalatest.akka.QuietReporter") ++ + (if (excludeTags.isEmpty) Seq.empty else Seq("-l", excludeTags.mkString(" "))) ++ + (if (defaultIncludeTestTags.isEmpty) Seq.empty else Seq("-n", defaultIncludeTestTags.mkString(" "))) + } + lazy val defaultSettings = baseSettings ++ formatSettings ++ Seq( resolvers += "Typesafe Repo" at "http://repo.typesafe.com/typesafe/releases/", @@ -318,23 +343,9 @@ object AkkaBuild extends Build { parallelExecution in Test := System.getProperty("akka.parallelExecution", "false").toBoolean, - // for excluding tests by name (or use system property: -Dakka.test.names.exclude=TimingSpec) - excludeTestNames := { - val exclude = System.getProperty("akka.test.names.exclude", "") - if (exclude.isEmpty) Seq.empty else exclude.split(",").toSeq - }, - - // for excluding tests by tag (or use system property: -Dakka.test.tags.exclude=timing) - excludeTestTags := { - val exclude = System.getProperty("akka.test.tags.exclude", "") - if (exclude.isEmpty) defaultExcludedTags else exclude.split(",").toSeq - }, - - // for including tests by tag (or use system property: -Dakka.test.tags.include=timing) - includeTestTags := { - val include = System.getProperty("akka.test.tags.include", "") - if (include.isEmpty) Seq.empty else include.split(",").toSeq - }, + excludeTestNames := defaultExcludeTestNames, + excludeTestTags := defaultExcludeTestTags, + includeTestTags := defaultIncludeTestTags, // add filters for tests excluded by name testOptions in Test <++= excludeTestNames map { _.map(exclude => Tests.Filter(test => !test.contains(exclude))) },