spek v2.0.14 Release NotesRelease Date: 2020-11-14 // over 2 years ago
2.0.13discovery and execution started using coroutines, which means they are not confined to a single thread anymore. This can be problematic as most test frameworks like mokk (and possibly mockito) rely on test execution to be confined in a single thread (#923). Another side effect is that the test execution order wasn't deterministic anymore as at any given point a coroutine can be suspended and control is given elsewhere. This release fixes both that issue, Spek is still using coroutines but the runtime ensures that a given test class will always be confined to a single thread.
Previous changes from v2.0.13
🚀 This release adds several system properties to control how Spek does discovery and execution.
spek2.discovery.parallel.enabled- controls whether discovery is done in parallel or not, by default it is disabled. The presence of this property regardless of value will enable parallel discovery.
spek2.execution.parallel.enabled- controls whether execution is done in parallel or not, by default it is disabled. The presence of this property regardless of value will enable parallel execution.
SPEK2_TIMEOUTis now deprecated (will be removed in 2.1.0) and will be replaced by this property. Controls how long a test can run before timing out, by default it is disabled - i.e tests won't timeout.
A note for parallel execution
✅ Parallelism is at a class level not individual test scopes. Spek uses coroutines under the hood to execute tests in parallel, essentially
spek2.execution.parallel.enabledjust controls which
CoroutineDispatcheris used. For parallel executions
Dispatchers.Defaultis used, otherwise the one provided by