文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

2024-04-02 19:55

关注

这期内容当中小编将会给大家带来有关怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

对于一个持续开发的大型工程而言,足够的测试是保证软件行为符合预期的有效手段,而不是仅仅依靠 code review 或者开发者自己的技术素质。测试的编写理想情况下应该完全定义软件的行为,但是通常情况都是很难达到这样理想的程度。而测试覆盖率就是检验测试覆盖软件行为的情况,通过检查测试覆盖情况可以帮助开发人员发现没有被覆盖到的代码。

测试覆盖信息搜集

Nebula Graph 主要是由 C++ 语言开发的,支持大部分 Linux 环境以及 gcc/clang 编译器,所以通过工具链提供的支持,我们可以非常方便地统计Nebula Graph的测试覆盖率。

gcc/clang 都支持 gcov 式的测试覆盖率功能,使用起来也是非常简单的,主要有如下几个步骤:

  1. 添加编译选项 --coverage -O0 -g 

  2. 添加链接选项 --coverage 

  3. 运行测试

  4. 使用 lcov,整合报告,例如 lcov --capture --directory . --output-file coverage.info 

  5. 去掉外部代码统计,例如 lcov --remove coverage.info '*/opt/vesoftopt/vesoft/*' -o clean.info     bash <(curl -s https://codecov.io/bash) -Z -f clean.info

    这里主要是测试报告的收集、合并以及上传到第三方平台,这个在前文中已经比较详细地叙述过,CI 的运行情况如下图所示:

    怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

    集成测试覆盖率平台 Codecov

    Nebula Graph 选择的测试覆盖平台是 Codecov——一个测试结果分析工具,对于 GitHub Action 而言,主要是在 CI 中执行上述的测试覆盖信息搜集脚本以及将最终的测试覆盖文件上传到 Codecov平台。

    这里用户给自己的 repo 注册 Codecov 后可以获取一个访问的 token,通过这个 token 和 Codecov 的 API 可以将测试覆盖文件上传到 Codecov 这个平台上,具体的 API 可以参考  https://docs.codecov.io/reference#upload ,除了上传报告外还有列出 pr,commit 等 API 可以让用户开发自己的 bot 做一些自动化的工具,然后就可查看各种测试覆盖的信息,比如 Nebula Graph 的测试覆盖情况可以查看  https://codecov.io/gh/vesoft-inc/nebula 。

    比如可以通过这个饼状图查看不同目录代码的覆盖情况:

    怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

    也可以点开一个具体的文件,查看哪些行被覆盖那些行没有被覆盖:

    怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

    当然我们一般不会直接使用 Codecov 的 API,而是使用他提供的一个 cli 工具,比如上传报告使用 bash <(curl -s https://codecov.io/bash) -Z -t <token> -f clean.info ,这里的 token 就是 Codecov 提供的认证 token,一般来说作为环境变量 CODECOV_TOKEN 使用,而不是输入明文。

    通过上述操作呢就可以在 Codecov 平台上查看你的工程的测试覆盖情况,并且可以看到每次 pr 增加减少了多少覆盖率,方便逐渐提高测试覆盖率。最后的话还可以在你的 README 上贴上 Codecov 提供的测试覆盖率 badge,就像 Nebula Graph 一样: https://github.com/vesoft-inc/nebula。

    怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践

    本文中如有错误或疏漏欢迎去 GitHub: https://github.com/vesoft-inc/nebula issue 区向我们提 issue 或者前往官方论坛: https://discuss.nebula-graph.com.cn/ 的 建议反馈 分类下提建议 ????;加入 Nebula Graph 交流群,请联系 Nebula Graph 官方小助手微信号: NebulaGraphbot

    推荐阅读

    • 应用 AddressSanitizer 发现程序内存错误

    • Github Statistics 一个基于 React 的 GitHub 数据统计工具

    作者有话说:Hi,我是 shylock,是 Nebula Graph 的研发工程师,希望本文对你有所帮助,如果有错误或不足也请与我交流,不甚感激!

    声明:本文采用 CC BY-NC-ND 4.0 协议进行授权 署名-非商业性使用-禁止演绎 4.0 国际

    上述就是小编为大家分享的怎么进行图数据库 Nebula Graph 的代码变更测试覆盖率实践了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯