A lightweight terminal UI for displaying Go tests.
Sift solves the problem of verbose Go test logs by allowing you to show/hide the logs at an individual tests level.
go install github.com/timtatt/[email protected]
sift
works by consuming the verbose json output from the go test
command. The easiest way to use it is to pipe |
the output straight into sift
go test {your-go-package} -v -json | sift
# eg.
go test ./... -v -json | sift
To see the available keymaps, press ?
. The keymaps are based on vim motion standard keymaps for scrolling and managing folds
Press /
to search and filter tests:
- Type to filter tests using fuzzy matching (case-insensitive)
- Press
enter
to exit search mode while keeping the filter active - Press
esc
to clear the search filter and show all tests
- Accordion levels based on '/'
- Nesting the child tests
- Search for tests with '/'
- Filter tests by status (pass/fail/skip)
- Support for light mode
- Add inline mode to show test summary
- Add animated chars
- Add responsive wrapping for the help
- When items collapsed and viewport is too large, rerender to remove whitespace
The UI design of sift
is heavily inspired by the vitest cli