一尘不染

是否可以将多个包裹的承保范围发布到Coveralls?

go

我想使用Coveralls跟踪执行项目的测试覆盖率,使用https://github.com/mattn/goveralls进行集成参考的说明

cd $GOPATH/src/github.com/yourusername/yourpackage
$ goveralls your_repos_coveralls_token

但是,这只会发布一个程序包的结果,而针对程序包的运行又不会起作用,因为最终运行会覆盖所有其他运行。有没有人想出如何获得多个包裹的承保范围?


阅读 231

收藏
2020-07-02

共1个答案

一尘不染

我最终使用了这个脚本

echo "mode: set" > acc.out
for Dir in $(find ./* -maxdepth 10 -type d );
do
        if ls $Dir/*.go &> /dev/null;
        then
            go test -coverprofile=profile.out $Dir
            if [ -f profile.out ]
            then
                cat profile.out | grep -v "mode: set" >> acc.out
            fi
fi
done
goveralls -coverprofile=acc.out $COVERALLS
rm -rf ./profile.out
rm -rf ./acc.out

它基本上会找到路径中的所有目录,并分别为它们打印coverage配置文件。然后,将这些文件连接成一个大文件,然后将它们运送到工作服。

2020-07-02