WeaverFramework

weaver.framework.WeaverFramework
class WeaverFramework[F[_]](suffix: String, val fp: WeaverFingerprints[F], val unsafeRun: UnsafeRun[F], val errorStream: PrintStream) extends Framework

Attributes

Graph
Supertypes
trait Framework
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

def fingerprints(): Array[Fingerprint]

An array of Fingerprints that specify how to identify test classes during discovery.

An array of Fingerprints that specify how to identify test classes during discovery.

Attributes

def name(): String

A human-friendly name of the test framework that this object represents.

A human-friendly name of the test framework that this object represents.

Attributes

def runner(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader): Runner

Initiates a run.

Initiates a run.

If a client invokes this method before a previously initiated run has completed, the test framework may throw IllegalStateException to indicate it cannot perform the two runs concurrently.

Attributes

args

the test-framework-specific arguments for the new run

remoteArgs

the test-framework-specific remote arguments for the run in a forked JVM

testClassLoader

a class loader to use when loading test classes during the run

Returns:

a Runner representing the newly started run.

Throws:
java.lang.IllegalStateException

if the test framework is unable to initiate a run because it is already performing a previously initiated run that has not yet completed.

def slaveRunner(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader, send: String => Unit): Runner

Scala Native specific: Creates a worker for a given run. Ported from Scala.js The worker may send a message to the controller runner by calling send.

Scala Native specific: Creates a worker for a given run. Ported from Scala.js The worker may send a message to the controller runner by calling send.

Important: this method name cannot be changed. It must keep the name slaveRunner for compatibility with Scala.js. This is a public to-be-overridden API that testing frameworks must implement. Currently testing frameworks can have a unique implementation of Framework for JVM, JS and Native. If we change that method name, they will need a separate source file for Native.

Similarly, Scala.js cannot change the name of that method in its API either, since that would be a binary breaking change that would break all published testing frameworks, which is not acceptable.

Introducing another method and deprecating this one as a forwarder is not an option, because testing frameworks must implement that method, not call it.

Attributes

def weaverRunner(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader, send: Option[String => Unit]): WeaverRunner[F]

Concrete fields

val errorStream: PrintStream
val unsafeRun: UnsafeRun[F]