commit - 5c3f51c09ac0514b520f33fcafeef84f13226f41
commit + ddced31a9140c5540b49332d9209d0606eb6ea8b
blob - 5cace18bf4b2a76810f3366d4c64f042f220fbec
blob + 32a206a7539114b54117e7d5acb6bb555a99ea45
--- parser/cobertura.go
+++ parser/cobertura.go
"io/ioutil"
)
-type CoberturaReport struct {
- XMLName xml.Name `xml:"coverage,attr,omitempty"`
- LinesValid int `xml:"lines-valid,attr,omitempty"`
- LinesCovered int `xml:"lines-covered,attr,omitempty"`
- LineRate int `xml:"line-rate,attr,omitempty"`
- BranchesValid int `xml:"branches-valid,attr,omitempty"`
- BranchesCovered int `xml:"branches-covered,attr,omitempty"`
- Timestamp int `xml:"timstamp,attr,omitempty"`
- Complexity int `xml:complexity,attr,omitempty`
- Version int `xml:version,attr,omitempty`
- //Sources []Source `xml:"source"`
- //Packages []Package `xml:"package"`
+type Coverage struct {
+ XMLName xml.Name `xml:"coverage"`
+ Name string `xml:"name,attr"`
+ LinesValid int `xml:"lines-valid,attr,omitempty"`
+ LinesCovered int `xml:"lines-covered,attr,omitempty"`
+ LineRate float64 `xml:"line-rate,attr,omitempty"`
+ BranchesValid int `xml:"branches-valid,attr,omitempty"`
+ BranchesCovered int `xml:"branches-covered,attr,omitempty"`
+ BranchRate float64 `xml:"branch-rate,attr,omitempty"`
+ Timestamp int `xml:"timstamp,attr,omitempty"`
+ Complexity float64 `xml:complexity,attr,omitempty`
+ Version int `xml:version,attr,omitempty`
+
+ Sources []Source `xml:"source->source"`
+ Packages []Package `xml:"package->package"`
}
type Source struct {
type Package struct {
XMLName xml.Name `xml:"package"`
- Name int `xml:"name,attr,omitempty"`
- LineRate int `xml:"line-rate,attr,omitempty"`
- BranchRate int `xml:"branch-rate,attr,omitempty"`
- Classes []Class `xml:"class"`
+ Name string `xml:"name,attr,omitempty"`
+ LineRate float64 `xml:"line-rate,attr,omitempty"`
+ BranchRate float64 `xml:"branch-rate,attr,omitempty"`
+ Complexity float64 `xml:complexity,attr,omitempty`
+ Classes []Class `xml:"class->class"`
}
type Class struct {
- XMLName xml.Name `xml:"package"`
- // TODO: class properties
+ XMLName xml.Name `xml:"class"`
Name string `xml:"attr,name,omitempty"`
Filename string `xml:"attr,filename,omitempty"`
- LineRate int `xml:"attr,line-rate,omitempty"`
- BranchRate int `xml:"attr,branch-rate,omitempty"`
- Methods []Method `xml:"method"`
- Lines []Line `xml:"line"`
+ LineRate float64 `xml:"attr,line-rate,omitempty"`
+ BranchRate float64 `xml:"attr,branch-rate,omitempty"`
+ Complexity float64 `xml:"complexity,attr,omitempty"`
+ Methods []Method `xml:"methods->method"`
+ Lines []Line `xml:"lines->line"`
}
type Line struct {
- XMLName xml.Name `xml:"property"`
- Number int `xml:"attr,number"`
- Hits int `xml:"attr,hits"`
- Branch bool `xml:"attr,branch"`
+ XMLName xml.Name `xml:"line"`
+ Number int `xml:"number,attr"`
+ Hits int `xml:"hits,attr"`
+ Branch bool `xml:"branch,attr"`
+ ConditionCoverage string `xml:"condition-coverage,attr"`
+ Conditions []Condition `xml:"conditions->condition"`
}
type Method struct {
- XMLName xml.Name `xml:"property"`
- Name string `xml:"attr,name"`
- Hits int `xml:"attr,name"`
- Signature string `xml:"attr,name"`
- Lines []Line `xml:"lines"`
+ XMLName xml.Name `xml:"method"`
+ Name string `xml:"name,attr,omitempty"`
+ Hits int `xml:"hits,attr,omitempty"`
+ Signature string `xml:"signature,attr,omitempty"`
+ BranchRate float64 `xml:"branch-rate,attr,omitempty"`
+ LineRate float64 `xml:"line-rate,attr,omitempty"`
+ Lines []Line `xml:"lines->line"`
}
+type Condition struct {
+ XMLName xml.Name `xml:"condition"`
+
+ Number int `xml:"number,attr,omitempty"`
+ Type string `xml:"type,attr,omitempty"`
+ Coverage string `xml:"coverage,attr,omitempty"`
+}
+
type InnerResult struct {
Value string `xml:",innerxml"`
}
-func NewParser(r io.Reader) (*CoberturaReport, error) {
+func NewParser(r io.Reader) (*Coverage, error) {
- var report = new(CoberturaReport)
+ var report = new(Coverage)
buf, err := ioutil.ReadAll(r)
if err != nil {