Releases: TypedDevs/bashunit
0.27.0
Added a fully interactive learning mode, expanded documentation with practical examples, fixed argument handling in mocks and lifecycle hook behavior, simplified CI runners, and delivered several performance optimizations for faster and more reliable execution.
✨ Improvements
- Added
--learninteractive tutorial featuring 10 progressive lessons for guided, hands-onBashtesting practice - Added
Common Patternsdocumentation with real-world examples for structuring tests, using hooks, and organizing suites
🐛 Bug Fixes
- Fixed mocked functions so they properly receive passed arguments
- Fixed lifecycle hooks to correctly capture intermediate failing commands inside
set_upandtear_down
🛠️ Changes
- Simplified CI matrix:
- Use only
*-latestrunners for Ubuntu and macOS - Removed deprecated
macos-13runner
- Use only
⚡ Performance
- Optimized temporary directory handling by initializing it once at startup instead of per temp file
- Replaced tail subprocesses with native Bash redirection for parallel result aggregation
- Cached internal state values to avoid repeated subshell calls, improving overall responsiveness
👥 Contributors
🔐 Checksum
b9362d720a46eb600d42ba18e6944521822ca397d1eaa1d0240fca8ce3fb859d bin/bashunit
Full Changelog: 0.26.0...0.27.0
0.26.0
Added assert_unsuccessful_code, removed redundant function scans, replaced slow commands with Bash expansion, and fixed test_file, data_set spacing, and Python compatibility in clock::now.
✨ Improvements
- Added
assert_unsuccessful_codeto verify that commands return a non-zero exit code - Removed redundant
declare -F | awkcalls previously executed for each test and bench file - Replaced
tailand process commands with native Bash parameter expansion, improving speed
🐛 Bug Fixes
- Fixed missing
test_filevariable in bench tests - Fixed
data_sethandling when arguments include spaces - Fixed compatibility with older Python versions used in
clock::now
👥 Contributors
Full Changelog: 0.25.0...0.26.0
🔐 Checksum
7ff253ec2cb665d560fd92d314687f0d6a256f9f9f13c57b3c4747d056e659af bin/bashunit
0.25.0
What's changed
TL;DR: Added AI dev integration guides, improved lifecycle hooks, and fixed multiple assertion and data provider issues.
✨ Improvements
- Add AI developer tools integration and internal guidelines
- Introduce
copilot-instructions.mdfor AI-assisted development - Add
AGENTS.mdto describe integration patterns for external developer tools - Define
.tasks/(versioned) and.task/(ignored) task storage policies
- Introduce
🐛 Bug Fixes
- Fix include
set_test_titlehelper in the single-file library - Fix lifecycle hooks capture and report flow
set_up,tear_down,set_up_before_script, andtear_down_after_script
- Fix false negatives in
assert_have_been_called_withwhen using pipes - Fix trailing whitespace loss in the final argument of
data_set - Fix unbound variable error in
parse_data_provider_argswhenset -uis enabled - Fix incorrect
bashunit::assertion_failedtest name on failure - Fix test name interpolation during failure reporting
👥 Contributors
@Chemaclass @evalverde-vw @jsitnicki @mattness
Full Changelog: 0.24.0...0.25.0
0.24.0
What's changed
TL;DR: Improved argument matching in assertions, clearer docs, and multiple bug fixes for data providers and temp cleanup.
✨ Improvements
- Improve
assert_have_been_called_witharg matching #474 - Rename helper functions to helper prefix #475
📖 Documentation
🐛 Bug Fixes
- Fix support for whitespace in data providers #479
- Always correctly clean up temp contents #483
- Clean parallel temp folder after test run #484
- Fix support for tabs in data set values #485
- Fix support for newlines in data providers #487
👥 Contributors
@Chemaclass @antonio-gg-dev @CosmeValera @carlfriedrich
🆕 New Contributors
- @carlfriedrich made their first contribution in #479
Full Changelog: 0.23.0...0.24.0
0.23.0
What's Changed
🏅 New Features
- Add support for
.bashtest files #459 - Add
set_test_titleto allow custom test titles #472 - Add new
assert_exec#469
🐛 Bug Fixes
- Add fallback for clock with seconds resolution only #471
🏗️ Miscellaneous
- Update docs for mock usage #462
- Add minimum supported Bash version 3.2 check #460
- Skip report tracking unless requested #473
🫂 Contributors
@Chemaclass @drupol @akinomyoga
Full Changelog: 0.22.3...0.23.0
7043c1818016f330ee12671a233f89906f0d373f3b2aa231a8c40123be5a222b bashunit
0.22.3
What's Changed
🐛 Bug Fixes
🫂 Contributors
Full Changelog: 0.22.2...0.22.3
checksum: efae498584b4f11cd05e4acbba586009e391259fdbfac391844b75b7552e00d7 bin/bashunit
0.22.2
What's Changed
🏅 New Features
- Add line number to failing tests #455
🐛 Bug Fixes
🫂 Contributors
Full Changelog: 0.22.1...0.22.2
checksum: b52b602de0f1d345cc99b07506840d6beaa5c64d1e631e7243866d7e3273f439 bin/bashunit
0.22.1
What's Changed
🐛 Bug Fixes
- Fix prevent writing in source directory during tests #448
- Fix negative widths with rpad #449
- Fix internal
assert_line_countandcall_test_functions
🏗️ Miscellaneous
- Improve suffix assertion checks to use shell pattern matching
- Include calling function name in dev log output for easier debugging
- Add more internal dev log messages and prefix them with
[INTERNAL]- Toogle internal log messages with
BASHUNIT_INTERNAL_LOG=true|false
- Toogle internal log messages with
🫂 Contributors
Full Changelog: 0.22.0...0.22.1
checksum: 7706f5987e3dc6868694ed3c38b0b085a02d1404c01f31c21c923ec8e7d4bc55 bin/bashunit
0.22.0
What's Changed
🏅 New Features
🐛 Bug Fixes
🏗️ Miscellaneous
🫂 Contributors
Full Changelog: 0.21.0...0.22.0
checksum: a941fb4006e4fc20a6928bf23e3cd3357fbb5740f5bed6f85f532ab7993e882d bin/bashunit
0.21.0
What's Changed
🏅 New Features
- Added bench feature to benchmark test performance #422
- Added max_ms option to detect slow benchmarks #424
- Supported placeholder ignore in snapshot comparisons #423
- Counted data providers in total test calculation #421
- Improved Windows detection for parallel tests #431
🐛 Bug Fixes
- Fixed parallel mode behavior #419
- Ensured consistency in parallel tests on arch64 #434
- Tested bashunit_exit_code behavior #420
- Fixed typo in message (“to has been called”) #414
🏗️ Miscellaneous
- Added weekly downloads chart and improved documentation #415
- Interpolated frontmatter variables for local search index #417
- Added project overview to the website #426
- Improved clock performance #427
- Made installer arguments more flexible #428
- Split macOS and Ubuntu CI jobs #435
🫂 Contributors
@Chemaclass, @antonio-gg-dev, @CosmeValera
Full Changelog: 0.20.0...0.21.0
checksum: 655f4e4af47d4f0f6c794e4906bc22f16d9e1cfb4e277f5fb3a679322205bc10 bin/bashunit