Merge pull request #308 from cucumber/bugfix/junit-testsuite-time
Fixed an issue with calculating time for junit testsuite
Этот коммит содержится в:
коммит
a03a1b8d2c
2 изменённых файлов: 12 добавлений и 23 удалений
|
@ -1,8 +1,6 @@
|
||||||
package godog
|
package godog
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/cucumber/messages-go/v10"
|
"github.com/cucumber/messages-go/v10"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -10,7 +8,6 @@ type feature struct {
|
||||||
*messages.GherkinDocument
|
*messages.GherkinDocument
|
||||||
pickles []*messages.Pickle
|
pickles []*messages.Pickle
|
||||||
|
|
||||||
time time.Time
|
|
||||||
content []byte
|
content []byte
|
||||||
order int
|
order int
|
||||||
}
|
}
|
||||||
|
@ -90,7 +87,3 @@ func (f feature) findStep(astStepID string) *messages.GherkinDocument_Feature_St
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f feature) startedAt() time.Time {
|
|
||||||
return f.time
|
|
||||||
}
|
|
||||||
|
|
28
fmt_junit.go
28
fmt_junit.go
|
@ -67,21 +67,8 @@ func (f *junitFormatter) buildJUNITPackageSuite() junitPackageSuite {
|
||||||
pickles := f.storage.mustGetPickles(feature.Uri)
|
pickles := f.storage.mustGetPickles(feature.Uri)
|
||||||
sort.Sort(sortPicklesByID(pickles))
|
sort.Sort(sortPicklesByID(pickles))
|
||||||
|
|
||||||
var finishedAt = feature.startedAt()
|
|
||||||
|
|
||||||
if len(pickles) > 0 {
|
|
||||||
lastPickle := pickles[len(pickles)-1]
|
|
||||||
|
|
||||||
if len(lastPickle.Steps) > 0 {
|
|
||||||
lastStep := lastPickle.Steps[len(lastPickle.Steps)-1]
|
|
||||||
lastPickleStepResult := f.storage.mustGetPickleStepResult(lastStep.Id)
|
|
||||||
finishedAt = lastPickleStepResult.finishedAt
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ts := junitTestSuite{
|
ts := junitTestSuite{
|
||||||
Name: feature.Feature.Name,
|
Name: feature.Feature.Name,
|
||||||
Time: junitTimeDuration(feature.startedAt(), finishedAt),
|
|
||||||
TestCases: make([]*junitTestCase, len(pickles)),
|
TestCases: make([]*junitTestCase, len(pickles)),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,21 +77,28 @@ func (f *junitFormatter) buildJUNITPackageSuite() junitPackageSuite {
|
||||||
testcaseNames[pickle.Name] = testcaseNames[pickle.Name] + 1
|
testcaseNames[pickle.Name] = testcaseNames[pickle.Name] + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
firstPickleStartedAt := f.startedAt
|
||||||
|
lastPickleFinishedAt := f.startedAt
|
||||||
|
|
||||||
var outlineNo = make(map[string]int)
|
var outlineNo = make(map[string]int)
|
||||||
for idx, pickle := range pickles {
|
for idx, pickle := range pickles {
|
||||||
tc := junitTestCase{}
|
tc := junitTestCase{}
|
||||||
|
|
||||||
pickleResult := f.storage.mustGetPickleResult(pickle.Id)
|
pickleResult := f.storage.mustGetPickleResult(pickle.Id)
|
||||||
|
|
||||||
var finishedAt = pickleResult.StartedAt
|
if idx == 0 {
|
||||||
|
firstPickleStartedAt = pickleResult.StartedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
lastPickleFinishedAt = pickleResult.StartedAt
|
||||||
|
|
||||||
if len(pickle.Steps) > 0 {
|
if len(pickle.Steps) > 0 {
|
||||||
lastStep := pickle.Steps[len(pickle.Steps)-1]
|
lastStep := pickle.Steps[len(pickle.Steps)-1]
|
||||||
lastPickleStepResult := f.storage.mustGetPickleStepResult(lastStep.Id)
|
lastPickleStepResult := f.storage.mustGetPickleStepResult(lastStep.Id)
|
||||||
finishedAt = lastPickleStepResult.finishedAt
|
lastPickleFinishedAt = lastPickleStepResult.finishedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
tc.Time = junitTimeDuration(pickleResult.StartedAt, finishedAt)
|
tc.Time = junitTimeDuration(pickleResult.StartedAt, lastPickleFinishedAt)
|
||||||
|
|
||||||
tc.Name = pickle.Name
|
tc.Name = pickle.Name
|
||||||
if testcaseNames[tc.Name] > 1 {
|
if testcaseNames[tc.Name] > 1 {
|
||||||
|
@ -159,6 +153,8 @@ func (f *junitFormatter) buildJUNITPackageSuite() junitPackageSuite {
|
||||||
ts.TestCases[idx] = &tc
|
ts.TestCases[idx] = &tc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ts.Time = junitTimeDuration(firstPickleStartedAt, lastPickleFinishedAt)
|
||||||
|
|
||||||
suite.TestSuites[idx] = &ts
|
suite.TestSuites[idx] = &ts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче