Skip to content

Commit 4768f04

Browse files
committed
Add color in terminal output
1 parent 882382d commit 4768f04

File tree

4 files changed

+36
-1
lines changed

4 files changed

+36
-1
lines changed

assert/assertions.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{})
416416
expected, actual = formatUnequalValues(expected, actual)
417417
return Fail(t, fmt.Sprintf("Not equal: \n"+
418418
"expected: %s\n"+
419-
"actual : %s%s", expected, actual, diff), msgAndArgs...)
419+
"actual : %s%s", greenColored(expected), redColored(actual), diff), msgAndArgs...)
420420
}
421421

422422
return true

assert/colors.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package assert
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"golang.org/x/term"
8+
)
9+
10+
const redMark = "\033[0;31m"
11+
const greenMark = "\033[0;32m"
12+
const endMark = "\033[0m"
13+
14+
func redColored(i interface{}) interface{} {
15+
if isTerminal {
16+
return redMark + fmt.Sprintf("%s", i) + endMark
17+
}
18+
return i
19+
}
20+
21+
func greenColored(i interface{}) interface{} {
22+
if isTerminal {
23+
return greenMark + fmt.Sprintf("%s", i) + endMark
24+
}
25+
return i
26+
}
27+
28+
var isTerminal = term.IsTerminal(int(os.Stdout.Fd()))

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@ require (
88
github.com/davecgh/go-spew v1.1.1
99
github.com/pmezard/go-difflib v1.0.0
1010
github.com/stretchr/objx v0.5.0
11+
golang.org/x/term v0.12.0
1112
gopkg.in/yaml.v3 v3.0.1
1213
)
14+
15+
require golang.org/x/sys v0.12.0 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
99
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
1010
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1111
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
12+
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
13+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
14+
golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
15+
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
1216
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
1317
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1418
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)