Support testing multiple package.

Solution: https://goo.gl/QkJTrA
ref: https://github.com/golang/go/issues/6909

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2016-06-30 13:41:26 +08:00
parent 9bf3cdfb0b
commit c14eda6d3d
2 changed files with 29 additions and 1 deletions

View File

@ -25,6 +25,9 @@ endif
build: clean
sh script/build.sh $(VERSION)
coverage:
sh go.test.sh atomic
test: redis_test boltdb_test memory_test config_test
go test -v -cover -covermode=count -coverprofile=coverage.txt ./gorush/...
@ -41,7 +44,7 @@ config_test: init
go test -v -cover -covermode=count -coverprofile=coverage.txt ./config/...
html:
go tool cover -html=coverage.txt && unlink coverage.txt
go tool cover -html=coverage.txt
docker_build: clean
tar -zcvf build.tar.gz gorush.go gorush config storage Makefile glide.lock glide.yaml

25
go.test.sh Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -e
output() {
printf "\033[32m"
echo $1
printf "\033[0m"
exit 0
}
coverage_mode=$1
test -z $coverage_mode && output "Usage: $0 coverage_mode"
test -f coverage.txt && rm -rf coverage.txt
echo "mode: ${coverage_mode}" > coverage.txt
for d in ./storage/boltdb/... ./storage/redis/... ./storage/memory/... ./config/... ./gorush/...; do
go test -v -cover -coverprofile=profile.out -covermode=${coverage_mode} $d
if [ -f profile.out ]; then
sed '1d' profile.out >> coverage.txt
rm profile.out
fi
done