github TypedDevs/bashunit 0.35.0

14 hours ago

✨ Improvements

  • bashunit::spy accepts an optional exit code or custom implementation function (#600)
  • Assert functions accept an optional trailing label to override the failure title (#77)
  • --fail-on-risky flag and BASHUNIT_FAIL_ON_RISKY env var treat no-assertion tests as failures (#115)
  • --log-gha <file> flag and BASHUNIT_LOG_GHA env var emit GitHub Actions workflow commands so failed, risky and incomplete tests show up as inline PR annotations (#280)
  • assert_exec accepts --stdin, --stdout-contains, --stdout-not-contains, --stderr-contains and --stderr-not-contains flags to test interactive prompt commands and substring output (#301)

🛠️ Changes

  • Parallel test execution is now enabled on Alpine Linux (#370)

🐛 Bug Fixes

  • Dim/faint labels now render as gray (SGR 90) so keywords like Expected and Tests: stay colored in GitHub Actions logs (#323)
  • Syntax error in a test file now fails the suite instead of passing silently (#220)
  • --stop-on-failure now stops on runtime errors such as command not found or illegal option (#383)
  • Spying on echo or printf no longer hangs via infinite recursion (#607)
  • LCOV and HTML coverage reports no longer produce empty output under set -e (#618)
  • clock::now handles EPOCHREALTIME values that use a comma decimal separator
  • Invalid .env.example coverage threshold entry; CI now copies .env.example to .env so config parse errors are caught
  • Coverage no longer counts case patterns with trailing comments (e.g. *thing) # note) or loop terminators with redirections/pipes (e.g. done < file, done <<<"$var", done | sort) as executable lines (#634)
  • assert_true and assert_false now report empty strings as assertion failures instead of trying to execute them

👥 Contributors

Checksum

SHA256: bfe9f69bda77034234a38f26182cc34e1f7648d846dab57a513a14cf91977544

Full Changelog: 0.34.1...0.35.0

Don't miss a new bashunit release

NewReleases is sending notifications on new releases.