angular - 验证 Jenkins 管道中 Angular 应用程序的低覆盖率
问题描述
当我们想要验证 Java 应用程序的代码覆盖率时,我们使用 jacoco 生成一个 .exec 文件并运行 Jenkins jacoco 步骤来强制执行验证阈值,例如:
def classPattern = '**/target/classes'
def execPattern = '**/target/**.exec'
def sourcePattern = '**/src/main/java'
def coverageThreshold = 50
jacoco changeBuildStatus: true, classPattern: classPattern, maximumLineCoverage: "$coverageThreshold", minimumLineCoverage: "$coverageThreshold", execPattern: execPattern, sourcePattern: sourcePattern
if (currentBuild.result != 'SUCCESS') {
error 'JaCoCo coverage failed'
}
我想对从 Jenkins 管道构建的 Angular 应用程序执行相同的操作,如果未达到指定的阈值,则强制构建失败。
在管道阶段,我执行 Angular 测试:
sh "ng test --code-coverage"
这会生成一个代码覆盖率 lcov 报告coverage/lcov.info
我现在如何验证覆盖范围?是否有一些相当于jacoco()
我可以用来做的詹金斯步骤?
解决方案
junit
step 应该捕获那些。
这是一个例子
詹金斯文件
stage('Unit Test') {
agent {
docker 'circleci/node:9.3-stretch-browsers'
}
steps {
unstash 'node_modules'
sh 'yarn test:ci'
junit 'reports/**/*.xml'
}
}
纱
{
"test:ci": "ng test --config karma.conf.ci.js --code-coverage --progress=false"
}
推荐阅读
- angular - 从 API 调用添加数据时,离子手势停止工作,可能是生命周期问题?(角)
- sql - 如何在使用 JPA 的查询中多次使用相同的参数?
- node.js - 在 KafkaJS 中添加 keystore 和 truststore 配置
- python-3.x - 脚本未检索所有信息
- java - 无法在 Android 中找到用于处理 `javax.xml.bind.JAXBElement<> 类型值的类 `com.fasterxml.jackson.databind.ext.CoreXMLDeserializers`
- gitlab - GitLab Groups API - 返回组中所有项目的列表,包括子组中的项目(GitLab 版本 10.8)
- excel - Capital IQ Excel 插件
- three.js - 服务器端的多个 GLTF 加载和合并
- ios - 无限内存增长 IOS App (CFString) - 如何调试?
- c# - 如何在 azure 函数的 swagger UI 中默认显示帖子正文示例(2.0)