diff --git a/.travis.yml b/.travis.yml index 684501cd..3da98a63 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,13 +10,17 @@ go: before_install: - go get github.com/mattn/goveralls + - go get github.com/modocache/gover install: - true script: - make validate - - make test-unit + - make test-unit-cover + # gover collects all .coverprofile files and saves it to one file gover.coverprofile + - gover + - goveralls -coverprofile=gover.coverprofile -service=travis-ci # make test-cmd requires kompose binary - make bin @@ -26,4 +30,3 @@ script: - cp kompose $GOPATH/bin/ - make test-cmd - - goveralls -service=travis-ci diff --git a/Makefile b/Makefile index ba602475..61cdd4c3 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,8 @@ test-unit: ./script/make.sh test-unit test-cmd: ./script/make.sh test-cmd +test-unit-cover: + ./script/make.sh test-unit-cover validate: gofmt vet diff --git a/script/test-unit-cover b/script/test-unit-cover new file mode 100755 index 00000000..c0365c7c --- /dev/null +++ b/script/test-unit-cover @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 2016 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +source "$(dirname "$BASH_SOURCE")/.build" + + +# Install packages that are dependencies of the test. (this will speed up go test runs) +go test -i -race -cover $( go list github.com/kubernetes-incubator/kompose/... | grep -v '/vendor/' ) + +# go test doesn't support colleting coverage across multiple packages, +# so this is why this runs go test for each package separately +# generate go test commands using go list and run tests +go list -f '"go test -race -cover -v -coverprofile={{.Dir}}/.coverprofile {{.ImportPath}}"' github.com/kubernetes-incubator/kompose/... | grep -v "vendor" | xargs -L 1 -P4 sh -c