diff --git a/cpa/tester/policies/results.xml b/cpa/tester/policies/results.xml index 02a01ad..9d7f7b9 100644 --- a/cpa/tester/policies/results.xml +++ b/cpa/tester/policies/results.xml @@ -1,5 +1,5 @@ - + @@ -14,56 +14,56 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -83,18 +83,18 @@ - + - + - + @@ -102,32 +102,32 @@ - + - + - + - + - + - + diff --git a/cpa/tester/result.go b/cpa/tester/result.go index 65a27b4..bb8a794 100644 --- a/cpa/tester/result.go +++ b/cpa/tester/result.go @@ -167,7 +167,8 @@ func (jrh JSONResultHandler) HandleResults(c <-chan Result) bool { } type JUnitResultHandler struct { - w io.Writer + getTime func() time.Time + w io.Writer } func (rh JUnitResultHandler) HandleResults(c <-chan Result) bool { @@ -183,6 +184,7 @@ func (rh JUnitResultHandler) HandleResults(c <-chan Result) bool { return } currentSuite.Time = fmt.Sprintf("%.3f", currentSuiteTime.Seconds()) + currentSuite.Timestamp = rh.getTime().Format(time.RFC3339) currentSuiteTime = 0 root.Suites = append(root.Suites, currentSuite) } @@ -256,8 +258,13 @@ func (rh JUnitResultHandler) HandleResults(c <-chan Result) bool { } func MakeJUnitResultHandler(opts ResultHandlerOptions) JUnitResultHandler { + return MakeJUnitResultHandlerWithGetTime(opts, time.Now) +} + +func MakeJUnitResultHandlerWithGetTime(opts ResultHandlerOptions, getTime func() time.Time) JUnitResultHandler { return JUnitResultHandler{ - w: opts.Dst, + getTime: getTime, + w: opts.Dst, } } diff --git a/cpa/tester/runner_test.go b/cpa/tester/runner_test.go index e89f121..4e92dd2 100644 --- a/cpa/tester/runner_test.go +++ b/cpa/tester/runner_test.go @@ -6,6 +6,7 @@ import ( "os" "regexp" "testing" + "time" _ "embed" @@ -118,7 +119,10 @@ func TestRunnerResults(t *testing.T) { buf := new(bytes.Buffer) opts := ResultHandlerOptions{Dst: buf} - MakeJUnitResultHandler(opts).HandleResults(runner.Run()) + MakeJUnitResultHandlerWithGetTime(opts, func() time.Time { + t, _ := time.Parse(time.RFC3339, "2024-03-04T10:50:05Z") + return t + }).HandleResults(runner.Run()) suites := junit.JUnitTestSuites{} require.NoError(t, xml.Unmarshal(buf.Bytes(), &suites))