Kotest v4.0.0 Release Notes

  • ๐Ÿš€ The 4.0.0 release is a large release. With the project rename, the packages have changed and module names have changed.

    Major changes:

    • ๐Ÿ‘• The KotlinTest project is now multi-platform. This means most of the modules now require -jvm to be added if you are working server side JVM only. For example, io.kotlintest:kotlintest-runner-junit5 is now io.kotest:kotest-runner-junit5-jvm taking into account package name changes and the platform suffix.
    • โœ… The main assertions library is now kotest-assertions-core and many new assertions (matchers) have been added. This changelog won't list them all. It is simpler to view the [full list](doc/matchers.md).
    • ๐Ÿ“š The property test library has moved to a new module kotest-property and been reworked to include many new features. See new documentation [here](doc/property_testing.md). The old property test classes are deprecated and will be removed in a future release.
    • โœ… Many new property test generators have been added. The full list is [here](doc/generators.md).
    • โœ… Composable specs have been added in the form of Test Factories.
    • ๐Ÿ“ฆ Project config no longer requires placing in a special package name, but can be placed anywhere in the [classpath](doc/project_config.md).
    • @Autoscan has been added for [listeners](doc/listeners.md) and extensions.
    • โž• Added DSL version of test lifecycle [callbacks](doc/listeners.md#dsl-methods).

    Minor changes.

    • ๐Ÿ”‹ Feature: A new JSoup assertions module has been added. #1028
    • ๐Ÿ”‹ Feature: Stats matchers #851
    • ๐Ÿ”‹ Feature: Experimental Robolectric Support #926
    • ๐Ÿ›  Bugfix: shouldNotThrowAny return T instead of Unit #981
    • ๐Ÿšš Internal: Removed dependency on Arrow to avoid version conflicts
    • ๐Ÿ”‹ Feature: Project wide default test case config
    • ๐Ÿ”‹ Feature: whenReady(f) has been replaced with f.whenReady which is coroutine enabled
    • ๐Ÿ”‹ Feature: Alphabetic test case ordering
    • ๐Ÿ”‹ Feature: All test callbacks are now coroutine enabled
    • ๐Ÿ”‹ Feature: forEachAsClue
    • ๐Ÿ‘Œ Improvement: Support Koin 2.1.0
    • ๐Ÿ‘Œ Improvement: Explicitly allow internal classes as specs
    • ๐Ÿ”‹ Feature: Klock matcher support #1214
    • ๐Ÿ”‹ Feature: JDBC matcher support #1221