[本文出自天外归云的博客园]

一个名为exec_test.sh脚本,内容如下:

# 该脚本需要cd到测试文件所在目录下执行
method=$1
# 不传入method参数则运行全部测试
if [ ! -n "$1" ];then
    # 生成测试覆盖率文件
    go test -v -coverprofile=test.out -gcflags=all=-l
    # 生成测试覆盖率html报告
    go tool cover -html=test.out -o test.html
    exit 1
fi
# 传入method参数则测试指定方法
fileList=`ls`
cmd="go test -v"
for file in $fileList
do
    if echo "$file" | grep -q -E '\.go$';then
        cmd="${cmd} $file"
    fi
done
cmd="$cmd -test.run $method -gcflags=all=-l"
$cmd

执行测试的话,就是在待测文件所在目录下调用这个脚本,然后把方法名传进去就可以了,不传方法名执行所有目录下的测试:

sh exec_test.sh 待测方法名
或 sh exec_test.sh

很好用