package suite import "time" // SuiteInformation stats stores stats for the whole suite execution. type SuiteInformation struct { Start, End time.Time TestStats map[string]*TestInformation } // TestInformation stores information about the execution of each test. type TestInformation struct { TestName string Start, End time.Time Passed bool } func newSuiteInformation() *SuiteInformation { return &SuiteInformation{ TestStats: make(map[string]*TestInformation), } } func (s *SuiteInformation) start(testName string) { if s == nil { return } s.TestStats[testName] = &TestInformation{ TestName: testName, Start: time.Now(), } } func (s *SuiteInformation) end(testName string, passed bool) { if s == nil { return } s.TestStats[testName].End = time.Now() s.TestStats[testName].Passed = passed } func (s *SuiteInformation) Passed() bool { for _, stats := range s.TestStats { if !stats.Passed { return false } } return true }