2016-10-10 90 views
3

我们正在使用一个C#6.0项目,并使用Gi​​tub进行版本控制。我们还使用Travis来构建并使用它来检查请求。在GitHub pull请求上显示C#代码覆盖率?

有没有办法让特拉维斯(或其他一些服务)来计算我们的代码覆盖率并获得显示在拉请求上的值?

+1

Travis是否需要运行测试或者您是否只需查找其他状态?你有没有想过一个单独的集成https://github.com/integrations/feature/code-quality – osowskit

回答

2

我刚刚通过加入Greentube.Monitoring Github repositoryPull request

有用于多个工具的选择,但我将描述的设置,我想出了:

我使用特拉维斯-CI和适用于CI的AppVeyor,但自OpenCover doesn't work on Linux or MacOS以来,我只能从AppVeyor生成封面数据。

有一点需要注意的是,OpenCover当前为doesn't support portable pdbs,这是.NET Core项目的默认设置。出于这个原因,我创建了一个名为的项目配置覆盖范围,其中我有完整pdbs

当您在本地正确生成覆盖率报告后,您可以在Codecov上创建一个帐户并链接您的存储库。您需要发送第一份报告以查看任何内容。

我写了一个script,因此我可以在将覆盖范围发送到codecov之前在本地看到/调整覆盖率报告。考虑到如果由于某种原因你不想使用codecov还有很多其他的选择。

无论是在本地还是在AppVeyor上,您都需要指定Codecov标记才能上传覆盖数据。您可以通过将参数传递给CLI工具或设置环境变量CODECOV_TOKEN来使用它。 AppVeyor有一个环境部分,您可以在其中定义该部分(这就是为什么您在我的脚本中找不到硬编码的任何标记)。

最后,我添加了codecov.yml项目状态,它启用了Github Status integration