Skip to content

Releases: TypedDevs/bashunit

0.27.0

26 Nov 00:28
828ac2b

Choose a tag to compare

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 --learn interactive tutorial featuring 10 progressive lessons for guided, hands-on Bash testing practice
  • Added Common Patterns documentation 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_up and tear_down

🛠️ Changes

  • Simplified CI matrix:
    • Use only *-latest runners for Ubuntu and macOS
    • Removed deprecated macos-13 runner

⚡ 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

@Chemaclass @JesusValeraDev

🔐 Checksum

b9362d720a46eb600d42ba18e6944521822ca397d1eaa1d0240fca8ce3fb859d bin/bashunit

Full Changelog: 0.26.0...0.27.0

0.26.0

02 Nov 21:30
14baf6f

Choose a tag to compare

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_code to verify that commands return a non-zero exit code
  • Removed redundant declare -F | awk calls previously executed for each test and bench file
  • Replaced tail and process commands with native Bash parameter expansion, improving speed

🐛 Bug Fixes

  • Fixed missing test_file variable in bench tests
  • Fixed data_set handling 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

05 Oct 14:22
80dffc5

Choose a tag to compare

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.md for AI-assisted development
    • Add AGENTS.md to describe integration patterns for external developer tools
    • Define .tasks/ (versioned) and .task/ (ignored) task storage policies

🐛 Bug Fixes

  • Fix include set_test_title helper in the single-file library
  • Fix lifecycle hooks capture and report flow
    • set_up, tear_down, set_up_before_script, and tear_down_after_script
  • Fix false negatives in assert_have_been_called_with when using pipes
  • Fix trailing whitespace loss in the final argument of data_set
  • Fix unbound variable error in parse_data_provider_args when set -u is enabled
  • Fix incorrect bashunit::assertion_failed test 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

14 Sep 15:32
2ecfee3

Choose a tag to compare

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_with arg matching #474
  • Rename helper functions to helper prefix #475

📖 Documentation

  • Make Windows install clearer #477
  • Workaround docs for global name collisions #481

🐛 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

Full Changelog: 0.23.0...0.24.0

0.23.0

03 Aug 12:57
966de2f

Choose a tag to compare

What's Changed

🏅 New Features

  • Add support for .bash test files #459
  • Add set_test_title to 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

27 Jul 02:28
35fba18

Choose a tag to compare

What's Changed

🐛 Bug Fixes

🫂 Contributors

@Chemaclass

Full Changelog: 0.22.2...0.22.3

checksum: efae498584b4f11cd05e4acbba586009e391259fdbfac391844b75b7552e00d7 bin/bashunit

0.22.2

26 Jul 13:49
7ed61b1

Choose a tag to compare

What's Changed

🏅 New Features

  • Add line number to failing tests #455

🐛 Bug Fixes

  • Fix broken core snapshot tests #452 #454

🫂 Contributors

@Chemaclass @drupol

Full Changelog: 0.22.1...0.22.2

checksum: b52b602de0f1d345cc99b07506840d6beaa5c64d1e631e7243866d7e3273f439 bin/bashunit

0.22.1

22 Jul 22:08
425eb93

Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix prevent writing in source directory during tests #448
  • Fix negative widths with rpad #449
  • Fix internal assert_line_count and call_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

🫂 Contributors

@Chemaclass @drupol

Full Changelog: 0.22.0...0.22.1

checksum: 7706f5987e3dc6868694ed3c38b0b085a02d1404c01f31c21c923ec8e7d4bc55 bin/bashunit

0.22.0

20 Jul 12:46
b814e83

Choose a tag to compare

What's Changed

🏅 New Features

  • Add --init option to get you started quickly #440 #443
  • Add --no-output option #446

🐛 Bug Fixes

  • Fix process time always shows as '0 ms' #437
  • Fix terminal width first tput and fall back stty #438

🏗️ Miscellaneous

  • Optimize clock with a precompute implementation #439
  • Optimize --help message #444

🫂 Contributors

@Chemaclass

Full Changelog: 0.21.0...0.22.0

checksum: a941fb4006e4fc20a6928bf23e3cd3357fbb5740f5bed6f85f532ab7993e882d bin/bashunit

0.21.0

18 Jun 13:21
c1b0e17

Choose a tag to compare

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