File: result.go

package info (click to toggle)
golang-github-smartystreets-goconvey 1.6.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 1,672 kB
  • sloc: makefile: 8
file content (100 lines) | stat: -rw-r--r-- 2,231 bytes parent folder | download
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
package contract

import (
	"github.com/smartystreets/goconvey/convey/reporting"
	"github.com/smartystreets/goconvey/web/server/messaging"
)

type Package struct {
	Path          string
	Name          string
	Ignored       bool
	Disabled      bool
	BuildTags     []string
	TestArguments []string
	Error         error
	Output        string
	Result        *PackageResult

	HasImportCycle bool
}

func NewPackage(folder *messaging.Folder, name string, hasImportCycle bool) *Package {
	self := new(Package)
	self.Path = folder.Path
	self.Name = name
	self.Result = NewPackageResult(self.Name)
	self.Ignored = folder.Ignored
	self.Disabled = folder.Disabled
	self.BuildTags = folder.BuildTags
	self.TestArguments = folder.TestArguments
	self.HasImportCycle = hasImportCycle
	return self
}

func (self *Package) Active() bool {
	return !self.Disabled && !self.Ignored
}

func (self *Package) HasUsableResult() bool {
	return self.Active() && (self.Error == nil || (self.Output != ""))
}

type CompleteOutput struct {
	Packages []*PackageResult
	Revision string
	Paused   bool
}

var ( // PackageResult.Outcome values:
	Ignored         = "ignored"
	Disabled        = "disabled"
	Passed          = "passed"
	Failed          = "failed"
	Panicked        = "panicked"
	BuildFailure    = "build failure"
	NoTestFiles     = "no test files"
	NoTestFunctions = "no test functions"
	NoGoFiles       = "no go code"

	TestRunAbortedUnexpectedly = "test run aborted unexpectedly"
)

type PackageResult struct {
	PackageName string
	Elapsed     float64
	Coverage    float64
	Outcome     string
	BuildOutput string
	TestResults []TestResult
}

func NewPackageResult(packageName string) *PackageResult {
	self := new(PackageResult)
	self.PackageName = packageName
	self.TestResults = []TestResult{}
	self.Coverage = -1
	return self
}

type TestResult struct {
	TestName string
	Elapsed  float64
	Passed   bool
	Skipped  bool
	File     string
	Line     int
	Message  string
	Error    string
	Stories  []reporting.ScopeResult

	RawLines []string `json:",omitempty"`
}

func NewTestResult(testName string) *TestResult {
	self := new(TestResult)
	self.Stories = []reporting.ScopeResult{}
	self.RawLines = []string{}
	self.TestName = testName
	return self
}