在 github PR 中显示报道

Show Coverage in github PR

我们 运行 测试 github 中的每个拉取请求。

如果您正在查看拉取请求的更改,如果覆盖率可见,那就太棒了。

在查看 PR 审查中的差异时,我想看看哪一行被覆盖了,哪一行没有覆盖。

我们使用 pytest 和 travis。

我发现了这个:https://github.com/TheKevJames/coveralls-python 但是 AFAIK 这显示了其他地方的覆盖率报告,而不是在 PR 的“文件已更改”选项卡中。

这个问题不是关于达到 X% 的总体覆盖率。这道题是看哪些线被覆盖,哪些线没有被覆盖。

您可以将代码覆盖率输出到 README 文件中,这样当您在“文件已更改”选项卡中以及访问项目页面时,您将看到代码覆盖率。

部分解决方案:在我工作的一个项目中,我们有一个 codecov action set up. This action has a feature 来注释“文件已更改”选项卡中未涵盖的行:

这只会向您显示哪些行没有被覆盖,但也许这总比没有好吧?

编辑:我刚刚注意到 Julian 已经在评论中建议了 codecov,并且你说你想要一些非商业的东西。我只能在那里补充说,codecov 对于 public 回购以及最多五名成员的团队是免费的。如果您有私人仓库和更大的团队并且不想为这项服务付费,这对您没有帮助。

我想我还是应该把答案留在这里,以防有人在搜索开源项目的解决方案时发现这个问题。

您可以使用 Github 操作和 Github 检查运行 API。

来实现此目的

Github 操作工作流程的通用流程为:

  1. 运行 pytest 修改文件然后生成 coverage 报告。
  2. 使用 coverage 报告来注释提交。

生成的报告如下所示:

我创建了一个存储库 : pytest-annotate-pr to demonstrate how this can be done. Note that, this is just a demonstration of how this can be done, and it's far from production ready. For example, this currently only works when a commit is pushed in a PR :) It does not work when branches are merged into main. The above screenshot is from one of the PR 针对 main.

提出

如果您致力于此并制定生产就绪工作流程,请考虑将其纳入 Github 行动。