mirror of https://github.com/gogs/gogs.git
101 lines
2.2 KiB
Go
101 lines
2.2 KiB
Go
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
|
|
}
|