代码拉取完成,页面将自动刷新
package contract
import (
"path/filepath"
"strings"
"go/build"
"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, hasImportCycle bool) *Package {
self := new(Package)
self.Path = folder.Path
self.Name = resolvePackageName(self.Path)
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
}
func resolvePackageName(path string) string {
pkg, err := build.ImportDir(path, build.FindOnly)
if err == nil {
return pkg.ImportPath
}
nameArr := strings.Split(path, endGoPath)
return nameArr[len(nameArr)-1]
}
const (
separator = string(filepath.Separator)
endGoPath = separator + "src" + separator
)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。