All Versions
Latest Version
Avg Release Cycle
47 days
Latest Release
1307 days ago

Changelog History
Page 1

  • v2.0.14 Changes

    November 14, 2020

    🚀 In 2.0.13 discovery 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.

  • v2.0.13 Changes

    September 12, 2020

    🚀 This release adds several system properties to control how Spek does discovery and execution.

    0️⃣ 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.

    0️⃣ 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.execution.test.timeout - SPEK2_TIMEOUT is 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.enabled just controls which CoroutineDispatcher is used. For parallel executions Dispatchers.Default is used, otherwise the one provided by runBlocking is used.

  • v2.0.12 Changes

    July 05, 2020

    🚀 Patch release that adds support for IJ 2020.2 EAP and AS 4.0. The following AS and IJ versions are no longer supported:

    • Android Studio 3.3
    • Android Studio 3.4
    • IntelliJ IDEA 2018.2
    • IntelliJ IDEA 2018.3
    • IntelliJ IDEA 2019.1
    • IntelliJ IDEA 2019.2
  • v2.0.11

    May 30, 2020
  • v2.0.10 Changes

    March 07, 2020

    🚀 This releases add supports for Android Studio 3.6 and IntelliJ IDEA 2020.1

    🆕 New features

    • 👌 Support for Android Studio 3.6
    • 👌 Support for IntelliJ IDEA 2020.1 EAP
    • 🆕 New IDE inspection for spek classes without a no-arg constructor not marked abstract or any of the following annotations: @Ignore, @InstanceFactory. (#806)
    • ✅ The IJ test runner now explicitly exits even if there are non-daemon threads around after test execution. (#848)

    🗄 Deprecations and removals

    • 🚀 CachingMode.GROUP has now been deleted, this was deprecated a couple of release ago. (#798)
  • v2.0.9 Changes

    December 09, 2019

    🚀 A minor release to support the release of IntelliJ IDEA 2019.3 (see #809).

    🆕 New features

    💅 (#799) New fixture aliases added to the gherkin style

    💅 The following aliases are now available in the gherkin style:

    • Scenario.beforeScenario -> Scenario.beforeGroup
    • Scenario.afterScenario -> Scenario.afterGroup
    • Scenario.beforeEachStep -> Scenario.beforeEachTest
    • Scenario.afterEachStep -> Scenario.afterEachTest
    • Feature.beforeEachScenario -> Feature.beforeEachGroup
    • Feature.afterEachScenario -> Feature.afterEachGroup
    • Feature.beforeFeature -> Feature.beforeGroup
    • Feature.afterFeature -> Feature.afterGroup

    💅 The aliased fixtures will be deprecated in the context of the gherkin style.

    🗄 Deprecations

    (#798) Usage of CachingMode.GROUP is now considered an error

    This mode was replaced by CachingMode.EACH_GROUP on version 2.0.3.


    • (#820) Bump JUnit Platform dependency to 1.5.2
    • 🔨 (#808) Internal refactoring to use coroutines more.
  • v2.0.8 Changes

    October 06, 2019

    🔀 Artifacts are now synced to maven central

    👀 See #764 for more details.


    🚀 Test timeouts were added in 2.0.3 but it was hard to configure and there was no way to disable it - causing issues when using a debugger. This release includes several improvements to this feature.

    Setting timeouts globally

    🔧 (#769) On the JVM the global timeout can be configured via the system property SPEK_TIMEOUT

    Disable timeouts

    ⏱ (#792) A value of 0 will disable the timeout.

    🛠 Fixtures

    🆕 New fixtures

    (#670) beforeEachGroup and afterEachGroup fixtures are now available. They are invoked for every group including the group where they are declared (similar to how CachingMode.EACH_GROUP works).

    🗄 Deprecation

    💅 (#787) The fixture aliases before, after, beforeEach and afterEach in the specification style are now deprecated.

    Scope value (aka memoized) access are now stricter

    👀 (#789) Scope values will now throw an exception when accessed in the wrong context. A good example is accessing a scope value with CachingMode.TEST in a beforeGroup fixture. See ticket for the motivation and more details.

    ✅ LifecycleListener now reports test failures.

    👀 See #761 for the motivation and more details.

    🛠 Other fixes/changes

    • (#737) Validating a return value examples show use of lateinit on primitives which throws a compiler error
    • ✅ (#750) Allow running tests on source root
    • 📦 (#763) Run all specs in a package of a common module
    • 🔧 (#794) Improve how run configurations are named
  • v2.0.7

    September 05, 2019
  • v2.0.6 Changes

    July 28, 2019
    • ✅ (#706) Provide Kotlin JS and Kotlin Native artifacts for spek-dsl (running tests on those platform is not supported yet).
    • 👍 (#712) Support AS 3.5 Beta
    • ⬆️ (#720) Upgrade to the latest classgraph version.
    • 👍 (#738) Support IntelliJ IDEA 2019.2
    • 💅 (#714) Fail fast gherkin style.
  • v2.0.5 Changes

    May 29, 2019
    • 👍 Allow timeouts to be customized (specification + gherkin style)
    • 👌 Support AS 3.4.1
    • 👀 Make IJ plugin more lenient about unsupported kotlin platforms (see #704)