使用 Jenkins 从 Karma.js 获得百分比覆盖率
Posted
技术标签:
【中文标题】使用 Jenkins 从 Karma.js 获得百分比覆盖率【英文标题】:Getting Percentage coverage from Karma.js with Jenkins 【发布时间】:2017-07-31 01:18:26 【问题描述】:我正在运行 karma.js 进行单元测试并与 jenkins 管道集成。我的目标是读取 Karma 抛出的错误类型,如果它是与百分比相关的错误,我想终止工作,否则即使有其他错误(如单元测试失败等)也要继续。(这是一项要求,并且有原因为它。)
我没有找到方法来做到这一点。任何想法表示赞赏!
karma start ibx-test/olb/karma.conf.js --browsers PhantomJS --log-level warn --single-run
coverageReporter:
type: 'lcov',
dir: 'unit-tests/coverage/',
check:
global:
lines: 100 //This is just for testing
16:17:43 [单元测试] 09 03 2017 21:17:43.024:错误 [覆盖范围]: PhantomJS 2.1.1 (Linux 0.0.0):线路覆盖率 (90.33%) 不 达到全球阈值 (100%)
编辑:我在“构建步骤”下的管道语法中找到了“处理 xUnit 测试结果报告”,我可以以某种方式使用它吗?业力报告和xUnit之间是否存在关联?
【问题讨论】:
【参考方案1】:我找到了一种方法来做到这一点。 “Process xUnit 测试结果报告”有助于做到这一点。我检查了 Pipeline 语法,它给了我下面的脚本并且它有效。
step([$class: 'XUnitBuilder', testTimeMargin: '3000', thresholdMode: 1,
thresholds: [
[$class: 'FailedThreshold', failureNewThreshold: '',
failureThreshold: '2', unstableNewThreshold: '',
unstableThreshold: '1'],
[$class: 'SkippedThreshold', failureNewThreshold: '',
failureThreshold: '', unstableNewThreshold: '',
unstableThreshold: '']],
tools: [[$class: 'JUnitType', deleteOutputFiles: false,
failIfNotNew: false, pattern: 'ibx-test/reports/unit-tests/PhantomJS_2.1.1_(Linux_0.0.0)/ibx-test/reports/unit-tests/*.xml',
skipNoTestFiles: false, stopProcessingIfError: false]]])
thresholdMode:表示(失败或跳过)测试的数量将用于阈值。 1 代表数字,2 代表百分比。我用了 1,所以我可以让一个测试失败,我得到了想要的结果。
FailedThreshold:是用于故障阈值的类。
SkippedThreshold:可用于跳过的测试。我还没有使用它。
到目前为止,我并未关注此测试的其他参数。
如您所见,我的值为 2(failureThreshold: '2')。一旦我有 2 个测试失败,构建就会失败并终止。
【讨论】:
以上是关于使用 Jenkins 从 Karma.js 获得百分比覆盖率的主要内容,如果未能解决你的问题,请参考以下文章