- Matrix testing: nameless
data/propertylayersdataandpropertynow have overloads that omit the leading name (e.g.data(listOf(...)) test { ... },property(Arb.int()) - { ... }). A nameless layer skips the intermediate grouping node and registers its rows directly in the surrounding scope. A named layer remains shorthand for wrapping a nameless one in a labeled suite. Available in both regular andcompactscopes, across all overloads (Iterable/Sequence,replayIndex(es)/replay(s),- { }andtest { }).
- Matrix testing: replay info shows layer kind
Error replay infoframes are now tagged with their layer kind —(property)or(data)— for named and nameless layers alike (e.g.(property) seed: ...). Nameless layers print the marker without a name; the general failure/report path still shows no synthesized segment.
- Matrix testing: replace layer separator slash with TestBalloon separator arrow
- Matrix testing: replay info shows the full path
- The
Error replay infopath now mirrors the compact report path in full — enclosing grouping suites ("name" - { ... }) and plaintestleaves appear as path segments, not just the replayabledata/propertylayers. Only replayable layers still emit a- ...argument line; group-only chains produce no replay block.
- The
- Matrix testing: bounded compact concurrency
CompactConcurrency.Shared(n)runs a compact block through one compact-wide worker budget, so nested virtual layers can no longer multiply coroutine counts;CompactConcurrency.Layeredkeeps per-layer behaviour. Set it percompactblock or viadefaultCompactConcurrency.
- Matrix testing: replay failing cases
- Failure reports — real test-tree leaves and compacted virtual rows alike — now include a copy-paste-ready
Error replay infoblock whose lines are validproperty/dataarguments. - Pin a property layer to recorded cases with
replay = ReplayInput(seed, iteration), orreplays = listOf(...)for several seed/iteration pairs at once; pin a data layer withreplayIndex/replayIndexes. Pasting the reported lines re-runs exactly the failing case(s). replayis independent of a layer'sseed(deterministic full run vs. selecting recorded cases).- Replay info captures the full enclosing layer chain and records data indexes independently of
nameFn.
- Failure reports — real test-tree leaves and compacted virtual rows alike — now include a copy-paste-ready
- Matrix testing: API changes:
- Make name for compact layers mandatory
- Matrix testing
- TestBalloon 1.0.0
- Improve compacted data/property test reporting:
- Add a
Summary: X OK, Y failedline to compacted failure messages - Add
suppressCompactSuccessesconfiguration and terminal overrides to omit individualOKrows while keeping the summary - Avoid recursively embedding full nested compacted reports in parent compacted error rows
- Bound compacted failure row names using the configured test name length
- Add a
- Add concurrent execution for compacted suspending terminal
withDataandcheckAllleaves viacompactConcurrent - Add periodic progress heartbeat output while compacted terminal
withDataandcheckAllleaves are running - Simplify and fix custom truncation/stringification for primitive and unsigned arrays
- By default, only the first error's stack trace is reported for compacted data/property tests. This used to be
different. To fall back to the old behaviour (or for debugging), set
addSuppressedErrorsToCompactedFailures = true - Remove deprecated functions marked for removal. Refactor as follows:
withDataSuites(…) {…}->withData(…) - {…}(note the dash)checkAllSuites(…) {…}->checkAll(…) - {…}(note the dash)
- Remove
displayNameanddisplayNameLength - Remove deprecated
DEFAULT_TEST_NAME_MAX_LEN
- treat varags of
Pair<String,*>the same asMap<String,*>in data-driven tests - TestBalloon 0.8.2
- Fix incorrect internal reference to max length
- Platform-agnostic test name length defaults
- Prefixes for data test and property test
- Shorter compact names
- Global test name length configuration -> deprecate
DEFAULT_TEST_NAME_MAX_LEN - Hard fails on too long overall test names on Android
- Support TestBalloon 0.8-RC
- Add missing TestExecutionScope to data-driven test leaves
- Support fixture generation for suites in addition to tests
- Support nesting, but only ever use the fixture generator for the toplevel scope
- FreeSpec now requires explicit fixture parameter specification to disambiguate
- Remove deprecated properties marked for removal with 0.6
- Refactor to get rid of reification for:
- proper stack traces
- Kotlin 2.3 compatibility
- Sane default stringification of collection and arrays types
- All primitive arrays are correctly joined to string
- All unsigned arrays are correctly joined to string
ByteArrayandUByteArrayuse hex notation
- fix property test compacting bug
- clarify deprecations
- Datatest
- fix misnamed
withDataSuites - fix misnamed
arguments->parameters
- fix misnamed
- Fix length config bug
- Default display name max length to -1 (no truncation)
- Remove bare-lambda fixture generation
- Change global defaults and fix length bug
- Allow globally (and per test/suite) setting of max display length
Configurable max test name length (globally and per test)
- Revised fixture generation
- Use explicit function instead of bare lambdas; no more context params needed
- Deprecate old bare lambdas
- Optionally compacted data driven tests and property tests
- Work around test name issues
- More migration helpers and alternative syntax for nesting suites
- Per-test fixture generation addon
- Update to TestBalloon 0.7.1
Initial release