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 nowio.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
- ๐ 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,