-
-
Notifications
You must be signed in to change notification settings - Fork 36
/
print.go
94 lines (77 loc) · 1.82 KB
/
print.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package test
import (
"fmt"
"sort"
"strings"
"github.com/hofstadter-io/hof/lib/cuetils"
)
func printTests(suites []Suite, stats bool) {
totalTests := 0
totalStats := Stats{}
for _, S := range suites {
S.Stats.Time = 0
for _, t := range S.Tests {
S.Stats.add(t.Stats)
}
A := S.Value.Attribute("test")
as := []string{}
for k, v := range cuetils.AttrToMap(A) {
if v != "" {
as = append(as, fmt.Sprintf("%s=%s", k, v))
} else {
as = append(as, fmt.Sprintf("%s", k))
}
}
a := strings.Join(as, " ")
st := ""
if stats {
s := S.Stats
st = fmt.Sprintf(" %d/%d/%d ~ %v", s.Pass,s.Fail,s.Skip,s.Time)
}
lt := fmt.Sprintf("[%d]", len(S.Tests))
fmt.Printf( "[suite] %-16s %6s %-32v%s\n", S.Name, lt, a, st)
totalTests += len(S.Tests)
for _, t := range S.Tests {
A := t.Value.Attribute("test")
as := []string{}
for k, v := range cuetils.AttrToMap(A) {
// if key is a knownTester, put it first
known := false
for _, kT := range knownTesters {
if k == kT {
as = append([]string{"["+k+"]"}, as...)
known = true
break
}
}
if known {
continue
}
// otherwise just add
if v != "" {
as = append(as, fmt.Sprintf("%s=%s", k, v))
} else {
as = append(as, fmt.Sprintf("%s", k))
}
}
sort.Strings(as[1:])
a := strings.Join(as, " ")
st := ""
if stats {
totalStats.add(t.Stats)
s := t.Stats
st = fmt.Sprintf(" %d/%d/%d ~ %v", s.Pass,s.Fail,s.Skip,s.Time)
}
fmt.Printf( "[tester] %-16s %-32v%s\n", t.Name, a, st)
}
fmt.Println()
}
fmt.Println()
fmt.Println("Total Suites: ", len(suites))
fmt.Println("Total Tests: ", totalTests)
if stats {
s := totalStats
st := fmt.Sprintf("%d/%d/%d ~ %v", s.Pass,s.Fail,s.Skip,s.Time)
fmt.Println("Total Stats: ", st)
}
}