forked from openshift/origin
-
Notifications
You must be signed in to change notification settings - Fork 1
/
types.go
108 lines (78 loc) · 3.29 KB
/
types.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package api
import "encoding/xml"
// The below types are directly marshalled into XML. The types correspond to jUnit
// XML schema, but do not contain all valid fields. For instance, the class name
// field for test cases is omitted, as this concept does not directly apply to Go.
// For XML specifications see http://help.catchsoftware.com/display/ET/JUnit+Format
// or view the XSD included in this package as 'junit.xsd'
// TestSuites represents a flat collection of jUnit test suites.
type TestSuites struct {
XMLName xml.Name `xml:"testsuites"`
// Suites are the jUnit test suites held in this collection
Suites []*TestSuite `xml:"testsuite"`
}
// TestSuite represents a single jUnit test suite, potentially holding child suites.
type TestSuite struct {
XMLName xml.Name `xml:"testsuite"`
// Name is the name of the test suite
Name string `xml:"name,attr"`
// NumTests records the number of tests in the TestSuite
NumTests uint `xml:"tests,attr"`
// NumSkipped records the number of skipped tests in the suite
NumSkipped uint `xml:"skipped,attr"`
// NumFailed records the number of failed tests in the suite
NumFailed uint `xml:"failures,attr"`
// Duration is the time taken in seconds to run all tests in the suite
Duration float64 `xml:"time,attr"`
// Properties holds other properties of the test suite as a mapping of name to value
Properties []*TestSuiteProperty `xml:"properties,omitempty"`
// TestCases are the test cases contained in the test suite
TestCases []*TestCase `xml:"testcase"`
// Children holds nested test suites
Children []*TestSuite `xml:"testsuite"`
}
// TestSuiteProperty contains a mapping of a property name to a value
type TestSuiteProperty struct {
XMLName xml.Name `xml:"property"`
Name string `xml:"name,attr"`
Value string `xml:"value,attr"`
}
// TestCase represents a jUnit test case
type TestCase struct {
XMLName xml.Name `xml:"testcase"`
// Name is the name of the test case
Name string `xml:"name,attr"`
// Classname is an attribute set by the package type and is required
Classname string `xml:"classname,attr,omitempty"`
// Duration is the time taken in seconds to run the test
Duration float64 `xml:"time,attr"`
// SkipMessage holds the reason why the test was skipped
SkipMessage *SkipMessage `xml:"skipped"`
// FailureOutput holds the output from a failing test
FailureOutput *FailureOutput `xml:"failure"`
// SystemOut is output written to stdout during the execution of this test case
SystemOut string `xml:"system-out,omitempty"`
// SystemErr is output written to stderr during the execution of this test case
SystemErr string `xml:"system-err,omitempty"`
}
// SkipMessage holds a message explaining why a test was skipped
type SkipMessage struct {
XMLName xml.Name `xml:"skipped"`
// Message explains why the test was skipped
Message string `xml:"message,attr,omitempty"`
}
// FailureOutput holds the output from a failing test
type FailureOutput struct {
XMLName xml.Name `xml:"failure"`
// Message holds the failure message from the test
Message string `xml:"message,attr"`
// Output holds verbose failure output from the test
Output string `xml:",chardata"`
}
// TestResult is the result of a test case
type TestResult string
const (
TestResultPass TestResult = "pass"
TestResultSkip TestResult = "skip"
TestResultFail TestResult = "fail"
)