From 7e9bfaa351a9a1ef79de552f06905b5f3368f1c9 Mon Sep 17 00:00:00 2001 From: Florent AIDE Date: Mon, 23 May 2016 12:30:45 +0200 Subject: [PATCH] Adding the coverage script to help see which code is tested and which is not --- coverage | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 coverage diff --git a/coverage b/coverage new file mode 100755 index 0000000..80940df --- /dev/null +++ b/coverage @@ -0,0 +1,40 @@ +#!/bin/sh +# +# this file is from: +# https://raw.githubusercontent.com/mlafeldt/chef-runner/v0.7.0/script/coverage +# it is covered by the Apache License v2.0 +# modified for our purpose +# +# Generate test coverage statistics for Go packages. +# +# Works around the fact that `go test -coverprofile` currently does not work +# with multiple packages, see https://code.google.com/p/go/issues/detail?id=6909 +# +# Usage: script/coverage +# + +#set -e + +workdir=.cover +profile="$workdir/cover.out" +mode=count + +generate_cover_data() { + echo "Cleaning" + rm -rf "$workdir" + mkdir "$workdir" + + for pkg in "$@"; do + echo $pkg + f="$workdir/$(echo $pkg | tr / -).cover" + go test -covermode="$mode" -coverprofile="$f" "$pkg" + done + + echo "Building coverfile" + echo "mode: $mode" >"$profile" + grep -h -v "^mode:" "$workdir"/*.cover >>"$profile" +} + +generate_cover_data $(go list ./...) +echo "Showing report" +go tool cover -html="$profile"