=pro #15166 do not redefine executeTests
This commit is contained in:
parent
e43e48329c
commit
07ca8d5a8d
2 changed files with 43 additions and 28 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
package akka
|
package akka
|
||||||
|
|
||||||
|
import akka.TestExtras.Filter
|
||||||
import akka.TestExtras.Filter.Keys._
|
import akka.TestExtras.Filter.Keys._
|
||||||
import com.typesafe.sbt.{SbtScalariform, SbtMultiJvm}
|
import com.typesafe.sbt.{SbtScalariform, SbtMultiJvm}
|
||||||
import sbt._
|
import sbt._
|
||||||
|
|
@ -8,9 +9,7 @@ import sbt.Keys._
|
||||||
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
|
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
|
||||||
|
|
||||||
object MultiNode {
|
object MultiNode {
|
||||||
def executeMultiJvmTests = Def.setting {
|
def executeMultiJvmTests = Filter.containsOrNotExcludesTag("long-running")
|
||||||
onlyTestTags.value.contains("long-running") || !excludeTestTags.value.contains("long-running")
|
|
||||||
}
|
|
||||||
|
|
||||||
val multiNodeEnabled = sys.props.get("akka.test.multi-node").getOrElse("false").toBoolean
|
val multiNodeEnabled = sys.props.get("akka.test.multi-node").getOrElse("false").toBoolean
|
||||||
|
|
||||||
|
|
@ -46,27 +45,33 @@ object MultiNode {
|
||||||
ScalariformKeys.preferences in MultiJvm := Formatting.formattingPreferences) ++
|
ScalariformKeys.preferences in MultiJvm := Formatting.formattingPreferences) ++
|
||||||
Option(System.getProperty("akka.test.multi-node.hostsFileName")).map(x => Seq(multiNodeHostsFileName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
Option(System.getProperty("akka.test.multi-node.hostsFileName")).map(x => Seq(multiNodeHostsFileName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
||||||
Option(System.getProperty("akka.test.multi-node.java")).map(x => Seq(multiNodeJavaName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
Option(System.getProperty("akka.test.multi-node.java")).map(x => Seq(multiNodeJavaName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
||||||
Option(System.getProperty("akka.test.multi-node.targetDirName")).map(x => Seq(multiNodeTargetDirName in MultiJvm := x)).getOrElse(Seq.empty) ++ {
|
Option(System.getProperty("akka.test.multi-node.targetDirName")).map(x => Seq(multiNodeTargetDirName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
||||||
Seq(
|
((executeMultiJvmTests, multiNodeEnabled) match {
|
||||||
executeTests in Test := {
|
case (true, true) =>
|
||||||
if (executeMultiJvmTests.value) {
|
executeTests in Test <<= (executeTests in Test, multiNodeExecuteTests in MultiJvm) map {
|
||||||
val testResults = (executeTests in Test).value
|
case (testResults, multiNodeResults) =>
|
||||||
val multiNodeResults = multiNodeEnabled match {
|
val overall =
|
||||||
case true => (multiNodeExecuteTests in MultiJvm).value
|
if (testResults.overall.id < multiNodeResults.overall.id)
|
||||||
case false => (executeTests in MultiJvm).value
|
multiNodeResults.overall
|
||||||
}
|
else
|
||||||
|
testResults.overall
|
||||||
val overall =
|
Tests.Output(overall,
|
||||||
if (testResults.overall.id < multiNodeResults.overall.id)
|
testResults.events ++ multiNodeResults.events,
|
||||||
multiNodeResults.overall
|
testResults.summaries ++ multiNodeResults.summaries)
|
||||||
else
|
|
||||||
testResults.overall
|
|
||||||
Tests.Output(overall,
|
|
||||||
testResults.events ++ multiNodeResults.events,
|
|
||||||
testResults.summaries ++ multiNodeResults.summaries)
|
|
||||||
}
|
}
|
||||||
else (executeTests in Test).value
|
case (true, false) =>
|
||||||
}
|
executeTests in Test <<= (executeTests in Test, executeTests in MultiJvm) map {
|
||||||
)
|
case (testResults, multiNodeResults) =>
|
||||||
}
|
val overall =
|
||||||
|
if (testResults.overall.id < multiNodeResults.overall.id)
|
||||||
|
multiNodeResults.overall
|
||||||
|
else
|
||||||
|
testResults.overall
|
||||||
|
Tests.Output(overall,
|
||||||
|
testResults.events ++ multiNodeResults.events,
|
||||||
|
testResults.summaries ++ multiNodeResults.summaries)
|
||||||
|
}
|
||||||
|
case (false, _) => Seq.empty
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -226,14 +226,20 @@ object TestExtras {
|
||||||
|
|
||||||
import Keys._
|
import Keys._
|
||||||
|
|
||||||
|
private[Filter] object Params {
|
||||||
|
val testNamesExclude = systemPropertyAsSeq("akka.test.names.exclude").toSet
|
||||||
|
val testTagsExlcude = systemPropertyAsSeq("akka.test.tags.exclude").toSet
|
||||||
|
val testTagsOnly = systemPropertyAsSeq("akka.test.tags.only").toSet
|
||||||
|
}
|
||||||
|
|
||||||
def settings = {
|
def settings = {
|
||||||
Seq(
|
Seq(
|
||||||
excludeTestNames := systemPropertyAsSeq("akka.test.names.exclude").toSet,
|
excludeTestNames := Params.testNamesExclude,
|
||||||
excludeTestTags := {
|
excludeTestTags := {
|
||||||
if (onlyTestTags.value.isEmpty) systemPropertyAsSeq("akka.test.tags.exclude").toSet
|
if (onlyTestTags.value.isEmpty) Params.testTagsExlcude
|
||||||
else Set.empty
|
else Set.empty
|
||||||
},
|
},
|
||||||
onlyTestTags := systemPropertyAsSeq("akka.test.tags.only").toSet,
|
onlyTestTags := Params.testTagsOnly,
|
||||||
|
|
||||||
// add filters for tests excluded by name
|
// add filters for tests excluded by name
|
||||||
testOptions in Test <++= excludeTestNames map { _.toSeq.map(exclude => Tests.Filter(test => !test.contains(exclude))) },
|
testOptions in Test <++= excludeTestNames map { _.toSeq.map(exclude => Tests.Filter(test => !test.contains(exclude))) },
|
||||||
|
|
@ -250,6 +256,10 @@ object TestExtras {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def containsOrNotExcludesTag(tag: String) = {
|
||||||
|
Params.testTagsOnly.contains(tag) || !Params.testTagsExlcude(tag)
|
||||||
|
}
|
||||||
|
|
||||||
def systemPropertyAsSeq(name: String): Seq[String] = {
|
def systemPropertyAsSeq(name: String): Seq[String] = {
|
||||||
val prop = sys.props.get(name).getOrElse("")
|
val prop = sys.props.get(name).getOrElse("")
|
||||||
if (prop.isEmpty) Seq.empty else prop.split(",").toSeq
|
if (prop.isEmpty) Seq.empty else prop.split(",").toSeq
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue