为了账号安全,请及时绑定邮箱和手机立即绑定

着色 golang 测试运行输出

着色 golang 测试运行输出

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

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

您可以使用通用着色器grc对任何内容进行着色。


在 Debian/Ubuntu 上,使用apt-get install grc. 在带有 , 的 Mac 上brew install grc。


在您的主目录中创建一个 config 目录:


mkdir ~/.grc

然后在以下位置创建您的个人 grc 配置~/.grc/grc.conf:


# Go

\bgo.* test\b

conf.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 ./..

示例输出:

//img1.sycdn.imooc.com//6139b1400001d05622990903.jpg

为了避免打字grc的时候,添加一个别名到你的shell(如果使用bash,无论是~/.bashrc~/.bash_profile或两者兼而有之,这取决于您的操作系统):

alias go=grc go

现在您只需运行以下命令即可获得着色:

go test -v ./..


查看完整回答
反对 回复 2021-09-09
?
MMTTMM

TA贡献1869条经验 获得超4个赞

您可以为此创建一个包装器 shell 脚本并使用颜色转义序列为其着色。这是 Linux 上的一个简单示例(我不确定它在 Windows 上的外观,但我想有一种方法.. :))

go test -v . | sed ''/PASS/s//$(printf "\033[32mPASS\033[0m")/'' | sed ''/FAIL/s//$(printf "\033[31mFAIL\033[0m")/''


查看完整回答
反对 回复 2021-09-09
  • 3 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信