GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)

最近利用业余时间实现.ner core 版本的 casbin ,即 Casbin.NET。之前的CI都使用的是公司搭建的jenkinsgitlab-runner,对开源社区的工具链并不是很熟悉,在casbin的原作者(hsluoyz )的“要求”下,只能被迫在项目的README.md加入下面这些徽标:

640?wx_fmt=png

NOTE:其实我只加了coverage 和 appveyor build 徽章。

使用的工具和平台如下:

  1. Appveyor

  2. OpenCover

  3. coveralls

  4. coveralls.net

  5. dotnet core 2.x

Appveyor 和 coveralls的注册以及github授权就略过不提。然后,只需要在项目中放入.appveyor.yml 配置文件配置就算是完成了。此处关注配置文件和实际过程中碰到的一些坑。

GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)_第1张图片


坑 

  1. 错误1:


 GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)_第2张图片

导致这个错误的原因很简单,使用正确的包版本(nuget install xunit.runner.console -OutputDirectory packages -Version 2.3.1),还有就是单元测试项目NetCasbin.UnitTest.csproj 的目标平台过高netcoreapp2.1 ,改成netcoreapp2.0

  1. 错误2:

    和错误1相同单元测试项目NetCasbin.UnitTest.csproj 的目标平台过高netcoreapp2.1 ,改成netcoreapp2.0

  2. 错误3:

    GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)_第3张图片

导致这个错误的原因其实是.appveyor.yml配置文件中定义的环境变量COVERALLS_REPO_TOKENsecure的值错误,正确的值应该是原始coveralls中项目的COVERALLS_REPO_TOKEN 的密文,appveyor也提供了加密的工具 https://ci.appveyor.com/tools/encrypt,将密文作为COVERALLS_REPO_TOKENsecure的值即可。

  1. 错误4:

    如果上面的问题都排除了还有下面的问题:

那需要在项目的.csproj文件中加入full GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)_第4张图片

最后要说的是,营造一个好的.net core生态需要每一位喜欢c#语言的coder参与者,这里希望能够通过github 的CI实践,抛砖引玉,吸引更多的参与者加入到开源社区。

下一篇文章:一个权限引擎的作用,Cabin.NET的使用

原文地址:https://www.cnblogs.com/centcore/p/11146488.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg

你可能感兴趣的:(GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net))