I like it when terminal/console test runs actually show their output in either red or green text. It seems like a lot of the testing libraries available for Go have this. However, I'd like to just use the default testing package that comes with Go. Is there a way to colorize it's output with red and green?
You can use grc, a generic colourizer, to colourize anything.
On Debian/Ubuntu, install with apt-get install grc. On a Mac with , brew install grc.
Create a config directory in your home directory:
mkdir ~/.grc Then create your personal grc config in ~/.grc/grc.conf:
# Go \bgo.* test\b conf.gotest Then create a Go test colourization config in ~/.grc/conf.gotest, such as:
regexp==== RUN .* colour=blue - regexp=--- PASS: .* colour=green - regexp=^PASS$ colour=green - regexp=^(ok|\?) .* colour=magenta - regexp=--- FAIL: .* colour=red - regexp=[^\s]+\.go(:\d+)? colour=cyan Now you can run Go tests with:
grc go test -v ./.. Sample output:

To avoid typing grc all the time, add an alias to your shell (if using Bash, either ~/.bashrc or ~/.bash_profile or both, depending on your OS):
alias go=grc go Now you get colourization simply by running:
go test -v ./..
You can create a wrapper shell script for this and color it using color escape sequence. Here's a simple example on Linux (I'm not sure how this would look on windows, but I guess there is a way.. :) )
go test -v . | sed ''/PASS/s//$(printf "\033[32mPASS\033[0m")/'' | sed ''/FAIL/s//$(printf "\033[31mFAIL\033[0m")/''
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With