Skip to content

feat: P1 developer experience improvements#599

Merged
Chemaclass merged 7 commits intomainfrom
feat/p1-developer-experience
Mar 8, 2026
Merged

feat: P1 developer experience improvements#599
Chemaclass merged 7 commits intomainfrom
feat/p1-developer-experience

Conversation

@Chemaclass
Copy link
Member

Summary

Developer experience improvements focused on workflow and debugging:

  • --jobs N flag — Limit parallel test concurrency to N jobs (e.g., --jobs 4)
  • --watch mode — Automatically re-run tests when files change (--watch)
  • Source context in failures — Show the assertion lines from test source when a test fails
  • TAP output format — TAP version 13 compliant output via --output tap for CI/CD integration

Commits

  1. feat(cli): add --jobs N flag to limit parallel concurrency
  2. feat(cli): add --watch mode for automatic test re-runs
  3. feat(runner): show source context in failure summary
  4. feat(cli): add TAP output format via --output tap

Test plan

  • All 819 tests passing (807 passed, 3 skipped, 7 incomplete, 2 snapshot)
  • ShellCheck passes on all modified files
  • EditorConfig lint passes
  • Pre-commit hook passes
  • TAP output verified with test files
  • Bash 3.0+ compatible (no associative arrays, [[]] used only where existing)

Adds -j/--jobs <N> flag that enables parallel mode with a maximum of N
concurrent jobs. Uses a job-slot mechanism that polls running background
jobs before spawning new ones. Prevents resource exhaustion on systems
with limited memory when running large test suites in parallel.
Adds -w/--watch flag that monitors test and source files for
changes and automatically re-runs the test suite when modifications
are detected. Uses file modification times for efficient polling.
When a test fails, the failure summary now shows the assertion
lines from the test function, making it easier to identify which
assertion caused the failure without opening the source file.
Adds TAP version 13 compliant output with --output tap flag.
Includes test plan, ok/not ok lines, YAML diagnostics for
failures, and proper SKIP/TODO directives.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

✅ Contributor Report

User: @Chemaclass
Status: Trusted contributor (whitelisted)

This user is on the trusted contributors list and was automatically approved.

@Chemaclass Chemaclass self-assigned this Mar 6, 2026
@Chemaclass Chemaclass added the enhancement New feature or request label Mar 6, 2026
Merge origin/main into feat/p1-developer-experience.
Combines --jobs wait_for_job_slot with cached function
discovery parameter, and merges CHANGELOG entries.
--exclude-tag <name> Skip tests with matching @tag (repeatable, exclude wins)
--log-junit <file> Write JUnit XML report
-p, --parallel Run tests in parallel
-j, --jobs <N> Run tests in parallel with max N concurrent jobs
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the documentation updated?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated! Added --jobs documentation to both docs/command-line.md (options table + dedicated section) and docs/configuration.md (BASHUNIT_PARALLEL_JOBS env var).

@Chemaclass Chemaclass merged commit d1ab988 into main Mar 8, 2026
26 checks passed
@Chemaclass Chemaclass deleted the feat/p1-developer-experience branch March 8, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants