=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
|
||||
|
||||
import akka.TestExtras.Filter
|
||||
import akka.TestExtras.Filter.Keys._
|
||||
import com.typesafe.sbt.{SbtScalariform, SbtMultiJvm}
|
||||
import sbt._
|
||||
|
|
@ -8,9 +9,7 @@ import sbt.Keys._
|
|||
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
|
||||
|
||||
object MultiNode {
|
||||
def executeMultiJvmTests = Def.setting {
|
||||
onlyTestTags.value.contains("long-running") || !excludeTestTags.value.contains("long-running")
|
||||
}
|
||||
def executeMultiJvmTests = Filter.containsOrNotExcludesTag("long-running")
|
||||
|
||||
val multiNodeEnabled = sys.props.get("akka.test.multi-node").getOrElse("false").toBoolean
|
||||
|
||||
|
|
@ -46,27 +45,33 @@ object MultiNode {
|
|||
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.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) ++ {
|
||||
Seq(
|
||||
executeTests in Test := {
|
||||
if (executeMultiJvmTests.value) {
|
||||
val testResults = (executeTests in Test).value
|
||||
val multiNodeResults = multiNodeEnabled match {
|
||||
case true => (multiNodeExecuteTests in MultiJvm).value
|
||||
case false => (executeTests in MultiJvm).value
|
||||
}
|
||||
|
||||
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)
|
||||
Option(System.getProperty("akka.test.multi-node.targetDirName")).map(x => Seq(multiNodeTargetDirName in MultiJvm := x)).getOrElse(Seq.empty) ++
|
||||
((executeMultiJvmTests, multiNodeEnabled) match {
|
||||
case (true, true) =>
|
||||
executeTests in Test <<= (executeTests in Test, multiNodeExecuteTests 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)
|
||||
}
|
||||
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._
|
||||
|
||||
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 = {
|
||||
Seq(
|
||||
excludeTestNames := systemPropertyAsSeq("akka.test.names.exclude").toSet,
|
||||
excludeTestNames := Params.testNamesExclude,
|
||||
excludeTestTags := {
|
||||
if (onlyTestTags.value.isEmpty) systemPropertyAsSeq("akka.test.tags.exclude").toSet
|
||||
if (onlyTestTags.value.isEmpty) Params.testTagsExlcude
|
||||
else Set.empty
|
||||
},
|
||||
onlyTestTags := systemPropertyAsSeq("akka.test.tags.only").toSet,
|
||||
onlyTestTags := Params.testTagsOnly,
|
||||
|
||||
// add filters for tests excluded by name
|
||||
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] = {
|
||||
val prop = sys.props.get(name).getOrElse("")
|
||||
if (prop.isEmpty) Seq.empty else prop.split(",").toSeq
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue