abstract class MultiNodeSpec extends TestKit with MultiNodeSpecCallbacks
Note: To be able to run tests with everything ignored or excluded by tags
you must not use testconductor
, or helper methods that use testconductor
,
from the constructor of your test class. Otherwise the controller node might
be shutdown before other nodes have completed and you will see errors like:
AskTimeoutException: sending to terminated ref breaks promises
. Using lazy
val is fine.
- Source
- MultiNodeSpec.scala
- Alphabetic
- By Inheritance
- MultiNodeSpec
- MultiNodeSpecCallbacks
- TestKit
- TestKitBase
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MultiNodeSpec(config: MultiNodeConfig)
-
new
MultiNodeSpec(config: MultiNodeConfig, actorSystemCreator: (Config) ⇒ ActorSystem)
Constructor for using arbitrary logic to create the actor system used in the multi node spec (the
Config
passed to the creator must be used in the created actor system for the multi node tests to work) - new MultiNodeSpec(myself: RoleName, _system: ActorSystem, _roles: Seq[RoleName], deployments: (RoleName) ⇒ Seq[String])
Type Members
- class AwaitHelper[T] extends AnyRef
Abstract Value Members
-
abstract
def
initialParticipants: Int
TO BE DEFINED BY USER: Defines the number of participants required for starting the test.
TO BE DEFINED BY USER: Defines the number of participants required for starting the test. This might not be equals to the number of nodes available to the test.
Must be a
def
:def initialParticipants = 5
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to any2stringadd[MultiNodeSpec] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (MultiNodeSpec, B)
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to ArrowAssoc[MultiNodeSpec] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
afterTermination(): Unit
Override this method to do something when the whole test is terminating.
Override this method to do something when the whole test is terminating.
- Attributes
- protected
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
assertForDuration[A](a: ⇒ A, max: FiniteDuration, interval: Duration): A
- Definition Classes
- TestKitBase
-
def
atStartup(): Unit
Override this method to do something when the whole test is starting up.
Override this method to do something when the whole test is starting up.
- Attributes
- protected
-
def
attachConductor(tc: TestConductorExt): Unit
- Attributes
- protected
-
def
awaitAssert[A](a: ⇒ A, max: Duration, interval: Duration): A
- Definition Classes
- TestKitBase
-
def
awaitCond(p: ⇒ Boolean, max: Duration, interval: Duration, message: String): Unit
- Definition Classes
- TestKitBase
-
implicit
def
awaitHelper[T](w: Awaitable[T]): AwaitHelper[T]
Enrich
.await()
onto all Awaitables, using remaining duration from the innermost enclosingwithin
block or QueryTimeout. -
def
childActorOf(props: Props): ActorRef
- Definition Classes
- TestKitBase
-
def
childActorOf(props: Props, name: String): ActorRef
- Definition Classes
- TestKitBase
-
def
childActorOf(props: Props, supervisorStrategy: SupervisorStrategy): ActorRef
- Definition Classes
- TestKitBase
-
def
childActorOf(props: Props, name: String, supervisorStrategy: SupervisorStrategy): ActorRef
- Definition Classes
- TestKitBase
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
ensuring(cond: (MultiNodeSpec) ⇒ Boolean, msg: ⇒ Any): MultiNodeSpec
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to Ensuring[MultiNodeSpec] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (MultiNodeSpec) ⇒ Boolean): MultiNodeSpec
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to Ensuring[MultiNodeSpec] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): MultiNodeSpec
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to Ensuring[MultiNodeSpec] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): MultiNodeSpec
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to Ensuring[MultiNodeSpec] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
enterBarrier(max: FiniteDuration, name: String*): Unit
Enter the named barriers in the order given.
Enter the named barriers in the order given. Use the remaining duration from the innermost enclosing
within
block or the passedmax
timeout.Note that the
max
timeout is scaled using Duration.dilated, which uses the configuration entry "akka.test.timefactor". -
def
enterBarrier(name: String*): Unit
Enter the named barriers in the order given.
Enter the named barriers in the order given. Use the remaining duration from the innermost enclosing
within
block or the defaultBarrierTimeout
. -
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
expectMsg[T](max: FiniteDuration, hint: String, obj: T): T
- Definition Classes
- TestKitBase
-
def
expectMsg[T](max: FiniteDuration, obj: T): T
- Definition Classes
- TestKitBase
-
def
expectMsg[T](obj: T): T
- Definition Classes
- TestKitBase
-
def
expectMsgAllClassOf[T](max: FiniteDuration, obj: Class[_ <: T]*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAllClassOf[T](obj: Class[_ <: T]*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAllConformingOf[T](max: FiniteDuration, obj: Class[_ <: T]*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAllConformingOf[T](obj: Class[_ <: T]*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAllOf[T](max: FiniteDuration, obj: T*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAllOf[T](obj: T*): Seq[T]
- Definition Classes
- TestKitBase
-
def
expectMsgAnyClassOf[C](max: FiniteDuration, obj: Class[_ <: C]*): C
- Definition Classes
- TestKitBase
-
def
expectMsgAnyClassOf[C](obj: Class[_ <: C]*): C
- Definition Classes
- TestKitBase
-
def
expectMsgAnyOf[T](max: FiniteDuration, obj: T*): T
- Definition Classes
- TestKitBase
-
def
expectMsgAnyOf[T](obj: T*): T
- Definition Classes
- TestKitBase
-
def
expectMsgClass[C](max: FiniteDuration, c: Class[C]): C
- Definition Classes
- TestKitBase
-
def
expectMsgClass[C](c: Class[C]): C
- Definition Classes
- TestKitBase
-
def
expectMsgPF[T](max: Duration, hint: String)(f: PartialFunction[Any, T]): T
- Definition Classes
- TestKitBase
-
def
expectMsgType[T](max: FiniteDuration)(implicit t: ClassTag[T]): T
- Definition Classes
- TestKitBase
-
def
expectMsgType[T](implicit t: ClassTag[T]): T
- Definition Classes
- TestKitBase
-
def
expectNoMessage(): Unit
- Definition Classes
- TestKitBase
-
def
expectNoMessage(max: FiniteDuration): Unit
- Definition Classes
- TestKitBase
-
def
expectTerminated(target: ActorRef, max: Duration): Terminated
- Definition Classes
- TestKitBase
-
def
fishForMessage(max: Duration, hint: String)(f: PartialFunction[Any, Boolean]): Any
- Definition Classes
- TestKitBase
-
def
fishForSpecificMessage[T](max: Duration, hint: String)(f: PartialFunction[Any, T]): T
- Definition Classes
- TestKitBase
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to StringFormat[MultiNodeSpec] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
ignoreMsg(f: PartialFunction[Any, Boolean]): Unit
- Definition Classes
- TestKitBase
-
def
ignoreNoMsg(): Unit
- Definition Classes
- TestKitBase
-
def
injectDeployments(sys: ActorSystem, role: RoleName): Unit
- Attributes
- protected
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isNode(nodes: RoleName*): Boolean
Verify that the running node matches one of the given nodes
-
def
lastSender: ActorRef
- Definition Classes
- TestKitBase
- val log: LoggingAdapter
-
def
msgAvailable: Boolean
- Definition Classes
- TestKitBase
-
final
def
multiNodeSpecAfterAll(): Unit
Call this after the all test cases have run.
Call this after the all test cases have run. NOT after every test case.
- Definition Classes
- MultiNodeSpec → MultiNodeSpecCallbacks
-
final
def
multiNodeSpecBeforeAll(): Unit
Call this before the start of the test run.
Call this before the start of the test run. NOT before every test case.
- Definition Classes
- MultiNodeSpec → MultiNodeSpecCallbacks
- def muteDeadLetters(messageClasses: Class[_]*)(sys: ActorSystem = system): Unit
-
val
myAddress: Address
- Attributes
- protected
- val myself: RoleName
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
node(role: RoleName): ActorPath
Query the controller for the transport address of the given node (by role name) and return that as an ActorPath for easy composition:
Query the controller for the transport address of the given node (by role name) and return that as an ActorPath for easy composition:
val serviceA = system.actorSelection(node("master") / "user" / "serviceA")
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
now: FiniteDuration
- Definition Classes
- TestKitBase
-
def
receiveN(n: Int, max: FiniteDuration): Seq[AnyRef]
- Definition Classes
- TestKitBase
-
def
receiveN(n: Int): Seq[AnyRef]
- Definition Classes
- TestKitBase
-
def
receiveOne(max: Duration): AnyRef
- Definition Classes
- TestKitBase
-
def
receiveWhile[T](max: Duration, idle: Duration, messages: Int)(f: PartialFunction[AnyRef, T]): Seq[T]
- Definition Classes
- TestKitBase
-
def
remaining: FiniteDuration
- Definition Classes
- TestKitBase
-
def
remainingOr(duration: FiniteDuration): FiniteDuration
- Definition Classes
- TestKitBase
-
def
remainingOrDefault: FiniteDuration
- Definition Classes
- TestKitBase
-
def
roles: Seq[RoleName]
All registered roles
-
def
runOn(nodes: RoleName*)(thunk: ⇒ Unit): Unit
Execute the given block of code only on the given nodes (names according to the
roleMap
). -
def
setAutoPilot(pilot: AutoPilot): Unit
- Definition Classes
- TestKitBase
-
def
shutdown(actorSystem: ActorSystem, duration: Duration, verifySystemShutdown: Boolean): Unit
- Definition Classes
- TestKitBase
- def shutdownTimeout: FiniteDuration
-
def
startNewSystem(): ActorSystem
This method starts a new ActorSystem with the same configuration as the previous one on the current node, including deployments.
This method starts a new ActorSystem with the same configuration as the previous one on the current node, including deployments. It also creates a new TestConductor client and registers itself with the conductor so that it is possible to use barriers etc. normally after this method has been called.
NOTICE: you MUST start a new system before trying to enter a barrier or otherwise using the TestConductor after having terminated this node’s system.
- Attributes
- protected
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
implicit
val
system: ActorSystem
- Definition Classes
- TestKit → TestKitBase
-
lazy val
testActor: ActorRef
- Definition Classes
- TestKitBase
-
def
testActorName: String
- Attributes
- protected
- Definition Classes
- TestKitBase
-
var
testConductor: TestConductorExt
Access to the barriers, failure injection, etc.
Access to the barriers, failure injection, etc. The extension will have been started either in Conductor or Player mode when the constructor of MultiNodeSpec finishes, i.e. do not call the start*() methods yourself!
-
def
testKitSettings: TestKitSettings
- Definition Classes
- TestKitBase
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
unwatch(ref: ActorRef): ActorRef
- Definition Classes
- TestKitBase
-
def
verifySystemShutdown: Boolean
Override this and return
true
to assert that the shutdown of theActorSystem
was done properly. -
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
watch(ref: ActorRef): ActorRef
- Definition Classes
- TestKitBase
-
def
within[T](max: FiniteDuration)(f: ⇒ T): T
- Definition Classes
- TestKitBase
-
def
within[T](min: FiniteDuration, max: FiniteDuration)(f: ⇒ T): T
- Definition Classes
- TestKitBase
-
def
→[B](y: B): (MultiNodeSpec, B)
- Implicit
- This member is added by an implicit conversion from MultiNodeSpec to ArrowAssoc[MultiNodeSpec] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Deprecated Value Members
-
def
expectNoMsg(max: FiniteDuration): Unit
- Definition Classes
- TestKitBase
- Annotations
- @deprecated
- Deprecated
(Since version 2.5.5) Use expectNoMessage instead
-
def
expectNoMsg(): Unit
- Definition Classes
- TestKitBase
- Annotations
- @deprecated
- Deprecated
(Since version 2.5.5) Use expectNoMessage instead
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated