在 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 操作工作流程的通用流程为:
- 运行
pytest
修改文件然后生成 coverage
报告。
- 使用
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 行动。
我们 运行 测试 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 操作工作流程的通用流程为:
- 运行
pytest
修改文件然后生成coverage
报告。 - 使用
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 行动。