Release 0.33.0
🔧 New features
Test output on failure
When a test fails due to a runtime error, bashunit now displays the captured stdout/stderr output directly alongside the failure, making it much easier to diagnose what went wrong.
✗ Failed: test_should_parse_config
Expected '0' but got '1'
stdout/stderr:
parse_config: line 12: unexpected token '}'bashunit --no-output-on-failure tests/
# or
BASHUNIT_SHOW_OUTPUT_ON_FAILURE=false bashunit tests/This is enabled by default. Disable it with --no-output-on-failure or the BASHUNIT_SHOW_OUTPUT_ON_FAILURE=false environment variable.
Suppress progress display
A new --no-progress flag suppresses real-time progress output, useful for CI environments or when piping output:
bashunit --no-progress tests/
# or
BASHUNIT_NO_PROGRESS=true bashunit tests/Opt out of test-level parallelism
Add the # bashunit: no-parallel-tests directive at the top of a test file to run its tests sequentially, even when using --parallel:
#!/usr/bin/env bash
# bashunit: no-parallel-tests
function test_must_run_sequentially() {
# Tests in this file won't be parallelized
...
}This is useful for test files with shared state or ordering requirements.
⚡ Improvements
Bash 3.0 support
The minimum Bash version requirement has been lowered from 3.2 to 3.0, broadening compatibility with older systems.
Faster parallel execution
Parallel test execution is now 30-40% faster on large test suites thanks to internal optimizations in the parallel runner.
🐛 Bug fixes
- Data providers now work without the
functionkeyword on test functions - Install tests now pass in sandboxed/no-network environments
- Parallel test execution now works correctly in strict mode (
bash -e -o pipefail)
See the full changelog on GitHub