| Crates.io | group-runner |
| lib.rs | group-runner |
| version | 0.1.3 |
| created_at | 2024-01-22 11:18:25.978301+00 |
| updated_at | 2025-06-09 10:30:15.097212+00 |
| description | Group Rust executable output in GitHub logs |
| homepage | |
| repository | https://github.com/smoelius/group-runner |
| max_upload_size | |
| id | 1108673 |
| size | 109,279 |
Group Rust executable output in GitHub logs
group-runner is useful, e.g., when you have lots of integration tests and seeing their output concatenated can be overwhelming.
Note: When designing your testsuite, be sure to consider @matklad's excellent blogpost, Delete Cargo Integration Tests.
group-runner output
In your GitHub workflow, install group-runner:
steps:
- name: Install group-runner
run: cargo install group-runner
Pass the following option to cargo run, cargo test, or cargo bench:
--config "target.'cfg(all())'.runner = 'group-runner'"
Example:
steps:
- name: Test
run: cargo test --config "target.'cfg(all())'.runner = 'group-runner'"
See The Cargo Book for more information.
Like above, however, we recommend storing the configuration in an environment variable. Example:
env:
GROUP_RUNNER: target.'cfg(all())'.runner = 'group-runner'
steps:
- name: Test foo
run: cargo test --package foo --config "$GROUP_RUNNER"
- name: Test bar
run: cargo test --package bar --config "$GROUP_RUNNER"
To avoid mixing build output with test output, we recommend building tests in a separate step prior to running them. Example:
steps:
- name: Build
run: cargo test --no-run
- name: Test
run: cargo test --config "target.'cfg(all())'.runner = 'group-runner'"