Anduin Xue
Anduin Xue

Anduin's Tech Blog

Continuous Integration


Show .NET code coverage rate and unit test status with GitLab CI\CD pipeline

本文展示了一种通过GitLab CI/CD管道自动展示.NET项目代码覆盖率与单元测试状态的完整实践方案。文章从项目结构配置开始指导读者如何通过NuGet包集成coverlet.collector和JunitXml.TestLogger实现测试数据收集,并通过精心设计的.gitlab-ci.yml文件构建包含构建测试发布三个阶段的自动化流水线。核心创新点在于利用正则表达式提取覆盖率数据并结合reportgenerator工具生成标准化报告,最终在GitLab界面实现测试结果可视化和代码覆盖率徽章展示。这种方案不仅实现了持续集成的自动化验证功能,更通过可视化数据为代码质量监控提供了直观依据。当测试覆盖率在合并请求中动态呈现时开发者能即时感知代码改动对测试覆盖的影响这种实时反馈机制是否能推动团队建立更严谨的测试文化?当覆盖率数据与代码质量指标产生关联时如何设计合理的阈值预警机制?或许我们更应该思考在追求高覆盖率的同时如何确保测试用例的有效性和维护性?这些值得深思的问题正在等待每一位实践者去探索答案。--Qwen3

.NET Test Code coverage Continuous Integration GitLab junit YAML

Lint markdown with customized rule by JavaScript

本文围绕一个程序员在维护中文烹饪指南GitHub仓库时遇到的Markdown格式校验挑战展开,介绍了如何通过JavaScript构建自定义规则的校验系统。当标准Markdown校验工具无法满足特定格式需求时,作者通过Node.js脚本实现了包含标题层级校验、单位规范检查和必要声明验证的定制化方案,同时将校验流程集成到GitHub Actions的CI管道中。校验逻辑覆盖了文件标题必须与菜品名称对应、二级标题需严格包含四个固定模块、以及必须包含特定声明语句等要求,通过异步文件处理和错误聚合机制确保代码可维护性。这种结合编程思维与代码审查的实践,不仅解决了技术文档的格式统一问题,更引发我们思考:当面对多语言混合的文档体系时,如何设计可扩展的校验规则?在自动化校验与人工审查之间,是否存在更智能的平衡点?当技术规范与文化表达产生冲突时,又该如何通过代码构建包容性的文档标准?--Qwen3

GitHub node JavaScript GitHub Actions Continuous Integration markdown

  • 1