Do honest test coverage analysis in Jenkins

This commit is contained in:
Jakob Borg 2014-08-19 12:43:50 +02:00
parent 264400a984
commit c57656e4c3
9 changed files with 51 additions and 2 deletions

1
.gitignore vendored
View File

@ -9,3 +9,4 @@ coverage.out
files/pidx files/pidx
bin bin
perfstats*.csv perfstats*.csv
coverage.xml

View File

@ -2,7 +2,6 @@ syncthing
========= =========
[![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing.svg?style=flat-square)](http://build.syncthing.net/job/syncthing/lastSuccessfulBuild/artifact/) [![Latest Build](http://img.shields.io/jenkins/s/http/build.syncthing.net/syncthing.svg?style=flat-square)](http://build.syncthing.net/job/syncthing/lastSuccessfulBuild/artifact/)
[![Coverage Status](https://img.shields.io/coveralls/syncthing/syncthing.svg?style=flat-square)](https://coveralls.io/r/syncthing/syncthing?branch=master)
[![API Documentation](http://img.shields.io/badge/api-Godoc-blue.svg?style=flat-square)](http://godoc.org/github.com/syncthing/syncthing) [![API Documentation](http://img.shields.io/badge/api-Godoc-blue.svg?style=flat-square)](http://godoc.org/github.com/syncthing/syncthing)
[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](http://opensource.org/licenses/MIT) [![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](http://opensource.org/licenses/MIT)

7
auto/auto_test.go Normal file
View File

@ -0,0 +1,7 @@
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package auto_test
// Empty test file to generate 0% coverage rather than no coverage

View File

@ -149,7 +149,6 @@ func setup() {
runPrint("go", "get", "-v", "code.google.com/p/go.tools/cmd/cover") runPrint("go", "get", "-v", "code.google.com/p/go.tools/cmd/cover")
runPrint("go", "get", "-v", "code.google.com/p/go.tools/cmd/vet") runPrint("go", "get", "-v", "code.google.com/p/go.tools/cmd/vet")
runPrint("go", "get", "-v", "code.google.com/p/go.net/html") runPrint("go", "get", "-v", "code.google.com/p/go.net/html")
runPrint("go", "get", "-v", "github.com/mattn/goveralls")
runPrint("go", "get", "-v", "github.com/tools/godep") runPrint("go", "get", "-v", "github.com/tools/godep")
} }

View File

@ -66,16 +66,31 @@ case "${1:-default}" in
;; ;;
test-cov) test-cov)
go get github.com/axw/gocov/gocov
go get github.com/AlekSi/gocov-xml
echo "mode: set" > coverage.out echo "mode: set" > coverage.out
fail=0 fail=0
# For every package in the repo
for dir in $(go list ./...) ; do for dir in $(go list ./...) ; do
# run the tests
godep go test -coverprofile=profile.out $dir godep go test -coverprofile=profile.out $dir
if [ -f profile.out ] ; then if [ -f profile.out ] ; then
# and if there was test output, append it to coverage.out
grep -v "mode: set" profile.out >> coverage.out grep -v "mode: set" profile.out >> coverage.out
rm profile.out rm profile.out
fi fi
done done
gocov convert coverage.out | gocov-xml > coverage.xml
# This is usually run from within Jenkins. If it is, we need to
# tweak the paths in coverage.xml so cobertura finds the
# source.
if [[ "${WORKSPACE:-default}" != "default" ]] ; then
sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
fi
;; ;;
*) *)

View File

@ -0,0 +1,7 @@
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package main_test
// Empty test file to generate 0% coverage rather than no coverage

View File

@ -0,0 +1,7 @@
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package discover_test
// Empty test file to generate 0% coverage rather than no coverage

7
osutil/osutil_test.go Normal file
View File

@ -0,0 +1,7 @@
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package osutil_test
// Empty test file to generate 0% coverage rather than no coverage

View File

@ -0,0 +1,7 @@
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package versioner_test
// Empty test file to generate 0% coverage rather than no coverage