kotest: 6.0 Changes Discussion (Including breaking changes)
Thread to contain some ideas for what we should change / add to 6.0
Breaking
- Disable classpath scanning by default for extensions - this causes slowdown at startup and can lead to bugs with classgraph/reflection etc.
- Update the shouldBe logic to use a fixed set of collection types, instead of anything that implements Iterable.
- Investigate if we can drop TestType.Dynamic
- Remove all deprecated functions
- Remove the old labels support from property testing in favor of Classifiers
- Change
Printed
output type to better support copy n pasting - Unify before/after listeners with property tests including on shrink runs.
- Revisit the coroutine heirarchy for all tests
- Consider removing or changing the way finalizeSpec works.
Not Breaking
- Yaml matchers to mirror Json Matchers
- Complete our concurrency support and remove experimental flags
- Allow re-run of shrunken property tests directly
- Consider looking inside the package of the test for a well known config class name to avoid classpath scanning, to support config per package, and to avoid needing to use a well known config class package name.
- Update the kotest plugin to run individual tests in native and js.
- Use Kotlin 2.0
- Expand the use of the Equality typeclass to all comparator style assertions and merge Eq and Equality into a shared typeclass.
- Consider making use of kotlin-power-assert which will become part of the standard compiler plugin set (KT-63607)
- New before/after callback that runs at the nested container level
About this issue
- Original URL
- State: open
- Created 4 months ago
- Reactions: 1
- Comments: 17 (16 by maintainers)
I re-opened the discussions feature and added a category for 6.0… https://github.com/kotest/kotest/discussions/categories/6-0-changes
I think the discussions will be easier to follow/participate in if it’s 1 thread per change… what do you think? We can close discussions down again if there’s no consensus in favor of this.
@OliverO2 @sksamuel I’ve created Consider making use of kotlin-power-assert which will become part of the standard compiler plugin set (KT-63607) to track your discussion
Yeah kotest is setup to fold io.kotest stacktraces and things like that, so using my domain for tests is an easy way to avoid that. That should only be used for tests tho.