着色 golang 测试运行输出

当终端/控制台测试运行实际以红色或绿色文本显示其输出时,我喜欢它。似乎很多可用于 Go 的测试库都有这个。但是,我只想使用 Go 附带的默认测试包。有没有办法用红色和绿色对它的输出进行着色?


郎朗坤
浏览 191回答 3
3回答

慕姐4208626

您可以使用通用着色器grc对任何内容进行着色。在 Debian/Ubuntu 上,使用apt-get install grc. 在带有 , 的 Mac 上brew install grc。在您的主目录中创建一个 config 目录:mkdir ~/.grc然后在以下位置创建您的个人 grc 配置~/.grc/grc.conf:# Go\bgo.* test\bconf.gotest然后在 中创建一个 Go 测试着色配置~/.grc/conf.gotest,例如: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现在您可以使用以下命令运行 Go 测试:grc go test -v ./..示例输出:为了避免打字grc的时候,添加一个别名到你的shell(如果使用bash,无论是~/.bashrc或~/.bash_profile或两者兼而有之,这取决于您的操作系统):alias go=grc go现在您只需运行以下命令即可获得着色:go test -v ./..

MMTTMM

您可以为此创建一个包装器 shell 脚本并使用颜色转义序列为其着色。这是 Linux 上的一个简单示例(我不确定它在 Windows 上的外观,但我想有一种方法.. :))go test -v . | sed ''/PASS/s//$(printf "\033[32mPASS\033[0m")/'' | sed ''/FAIL/s//$(printf "\033[31mFAIL\033[0m")/''
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go