A map of configuration data.
A ConfigMap
can be populated from the Runner
command line via -D
arguments. Runner
passes it to many methods where you can use it to configure your
test runs. For example, Runner
passed the ConfigMap
to:
-
the
apply
method ofReporter
s viaRunStarting
events -
the
run
method ofSuite
-
the
runNestedSuites
method ofSuite
-
the
runTests
method ofSuite
-
the
runTest
method ofSuite
-
the
withFixture(NoArgTest)
method ofSuite
-
the
withFixture(OneArgTest)
method offixture.Suite
-
the
beforeEach(TestData)
method ofBeforeAndAfterEachTestData
-
the
afterEach(TestData)
method ofBeforeAndAfterEachTestData
In addition to accessing the ConfigMap
in overriden implementations of the above methods, you can also transform
and pass along a modified ConfigMap
.
A ConfigMap
maps string keys to values of any type, i.e., it is a Map[String, Any]
.
To get a configuration value in a variable of the actual type of that value, therefore, you'll need to perform an unsafe cast. If
this cast fails, you'll get an exception, which so long as the ConfigMap
is used only in tests, will
result in either a failed or canceled test or aborted suite. To give such exceptions nice stack depths and error messages, and to
eliminate the need for using asInstanceOf
in your test code, ConfigMap
provides three
methods for accessing values at expected types.
The getRequired
method returns the value bound to a key cast to a specified type, or throws TestCanceledException
if either the key is not bound or is bound to an incompatible type. Here's an example:
val tempFileName: String = configMap.getRequired[String]("tempFileName")
The getOptional
method returns the value bound to a key cast to a specified type, wrapped in a Some
,
returns None
if the key is not bound, or throws TestCanceledException if the key exists but is
bound to an incompatible type. Here's an example:
val tempFileName: Option[String] = configMap.getOptional[String]("tempFileName")
The getWithDefault
method returns the value bound to a key cast to a specified type,
returns a specified default value if the key is not bound, or throws TestCanceledException if the key exists but is
either not bound or is bound to an incompatible type. Here's an example:
val tempFileName: String = configMap.getWithDefault[String]("tempFileName", "tmp.txt")
- Value parameters:
- underlying
an immutable
Map
that holds the key/value pairs contained in thisConfigMap
- Companion:
- object
Type members
Inherited classlikes
Value members
Concrete methods
Returns the value bound to a key cast to a specified type, wrapped in a Some
,
returns None
if the key is not bound, or throws TestCanceledException if the key exists but is
bound to an incompatible type. Here's an example:
Returns the value bound to a key cast to a specified type, wrapped in a Some
,
returns None
if the key is not bound, or throws TestCanceledException if the key exists but is
bound to an incompatible type. Here's an example:
val tempFileName: Option[String] = configMap.getOptional[String]("tempFileName")
- Value parameters:
- classTag
an implicit
ClassTag
specifying the expected type for the desired value- key
the key with which the desired value should be associated
Returns the value bound to a key cast to the specified type V
, or throws TestCanceledException
if either the key is not bound or is bound to an incompatible type. Here's an example:
Returns the value bound to a key cast to the specified type V
, or throws TestCanceledException
if either the key is not bound or is bound to an incompatible type. Here's an example:
val tempFileName: String = configMap.getRequired[String]("tempFileName")
- Value parameters:
- classTag
an implicit
ClassTag
specifying the expected type for the desired value- key
the key with which the desired value should be associated
Returns the value bound to a key cast to the specified type V
,
returns a specified default value if the key is not bound, or throws TestCanceledException if the key exists but is
if either the key is not bound or is bound to an incompatible type. Here's an example:
Returns the value bound to a key cast to the specified type V
,
returns a specified default value if the key is not bound, or throws TestCanceledException if the key exists but is
if either the key is not bound or is bound to an incompatible type. Here's an example:
val tempFileName: String = configMap.getWithDefault[String]("tempFileName", "tmp.txt")
- Value parameters:
- classTag
an implicit
ClassTag
specifying the expected type for the desired value- default
a default value to return if the key is not found
- key
the key with which the desired value should be associated
Inherited methods
- Inherited from:
- MapOps
- Inherited from:
- IterableOnceOps
- Inherited from:
- IterableOnceOps
- Inherited from:
- MapOps
- Inherited from:
- IterableOps
- Inherited from:
- IterableOnceOps
- Inherited from:
- IterableOps
- Inherited from:
- MapOps
Deprecated and Inherited methods
- Deprecated
[Since version 2.13.0]
Use ++ with an explicit collection argument instead of + with varargs- Inherited from:
- MapOps
- Deprecated
[Since version 2.13.0]
Use ++ instead of ++: for collections of type Iterable- Inherited from:
- IterableOps
- Deprecated
[Since version 2.13.0]
Use ++ instead of ++: for collections of type Iterable- Inherited from:
- MapOps
- Deprecated
[Since version 2.13.0]
Use -- with an explicit collection- Inherited from:
- MapOps
- Deprecated
[Since version 2.13.0]
Use foldLeft instead of /:- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
Use foldRight instead of :\\- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
`aggregate` is not relevant for sequential collections. Use `foldLeft(z)(seqop)` instead.- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
Use iterableFactory instead- Inherited from:
- IterableOps
- Deprecated
[Since version 2.13.0]
Use `dest ++= coll` instead- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
Use .view.filterKeys(f). A future version will include a strict version of this method (for now, .view.filterKeys(p).toMap).- Inherited from:
- MapOps
- Deprecated
[Since version 2.13.0]
Check .knownSize instead of .hasDefiniteSize for more actionable information (see scaladoc for details)- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
Use .view.mapValues(f). A future version will include a strict version of this method (for now, .view.mapValues(f).toMap).- Inherited from:
- MapOps
- Deprecated
[Since version 2.13.0]
Use coll instead of repr in a collection implementation, use the collection value itself from the outside- Inherited from:
- IterableOps
- Deprecated
[Since version 2.13.0]
Iterable.seq always returns the iterable itself- Inherited from:
- Iterable
- Deprecated
[Since version 2.13.7]
toIterable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections- Inherited from:
- Iterable
- Deprecated
[Since version 2.13.0]
Use .iterator instead of .toIterator- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
Use .to(LazyList) instead of .toStream- Inherited from:
- IterableOnceOps
- Deprecated
[Since version 2.13.0]
toTraversable is internal and will be made protected; its name is similar to `toList` or `toSeq`, but it doesn\'t copy non-immutable collections- Inherited from:
- IterableOps