Sapui5 即使未达到测试覆盖阈值,业力覆盖退出代码也始终为0
我正在尝试为UI5应用程序构建一个gitlab ci管道,包括使用Karma runner和Karma-UI5的测试阶段。如果未达到测试覆盖率阈值,我希望管道失败。我的karma.conf.js如下所示:Sapui5 即使未达到测试覆盖阈值,业力覆盖退出代码也始终为0,sapui5,code-coverage,karma-runner,gitlab-ci,karma-coverage,Sapui5,Code Coverage,Karma Runner,Gitlab Ci,Karma Coverage,我正在尝试为UI5应用程序构建一个gitlab ci管道,包括使用Karma runner和Karma-UI5的测试阶段。如果未达到测试覆盖率阈值,我希望管道失败。我的karma.conf.js如下所示: module.exports = function(config) { "use strict"; config.set({ frameworks: ["ui5"], preprocessors: {
module.exports = function(config) {
"use strict";
config.set({
frameworks: ["ui5"],
preprocessors: {
"{webapp,webapp/!(test)}/*.js": ["coverage"]
},
coverageReporter: {
includeAllSources: true,
reporters: [
{
type: "html",
dir: "coverage"
},
{
type: "text"
}
],
check: {
each: {
statements: 100,
branches: 100,
functions: 100,
lines: 100
}
}
},
reporters: ["progress", "coverage"],
browsers: ["CustomChromeHeadless"],
customLaunchers: {
CustomChromeHeadless: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
browserConsoleLogOptions: {
level: "error"
},
singleRun: true
});
};
TOTAL: 2 SUCCESS
07 11 2020 10:08:46.033:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for branches (50%) does not meet per-file (/builds/younang/ci/web/webapp/controller/View.controller.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for statements (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for branches (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for lines (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for functions (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 25 | 4.35 | 41.18 | 25 |
webapp | 100 | 100 | 100 | 100 |
Component.js | 100 | 100 | 100 | 100 |
webapp/controller | 100 | 50 | 100 | 100 |
...controller.js | 100 | 50 | 100 | 100 | 16
...p/localService | 0 | 0 | 0 | 0 |
mockserver.js | 0 | 0 | 0 | 0 | 1-115
webapp/model | 100 | 100 | 100 | 100 |
models.js | 100 | 100 | 100 | 100 |
-------------------|---------|----------|---------|---------|------------------
Karma coverage报告不满足覆盖阈值的文件,但退出代码始终为0,因此管道不会失败
输出如下所示:
module.exports = function(config) {
"use strict";
config.set({
frameworks: ["ui5"],
preprocessors: {
"{webapp,webapp/!(test)}/*.js": ["coverage"]
},
coverageReporter: {
includeAllSources: true,
reporters: [
{
type: "html",
dir: "coverage"
},
{
type: "text"
}
],
check: {
each: {
statements: 100,
branches: 100,
functions: 100,
lines: 100
}
}
},
reporters: ["progress", "coverage"],
browsers: ["CustomChromeHeadless"],
customLaunchers: {
CustomChromeHeadless: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},
browserConsoleLogOptions: {
level: "error"
},
singleRun: true
});
};
TOTAL: 2 SUCCESS
07 11 2020 10:08:46.033:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for branches (50%) does not meet per-file (/builds/younang/ci/web/webapp/controller/View.controller.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for statements (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for branches (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for lines (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
07 11 2020 10:08:46.034:ERROR [coverage]: HeadlessChrome 64.0.3282 (Linux 0.0.0): Coverage for functions (0%) does not meet per-file (/builds/younang/ci/web/webapp/localService/mockserver.js) threshold (100%)
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 25 | 4.35 | 41.18 | 25 |
webapp | 100 | 100 | 100 | 100 |
Component.js | 100 | 100 | 100 | 100 |
webapp/controller | 100 | 50 | 100 | 100 |
...controller.js | 100 | 50 | 100 | 100 | 16
...p/localService | 0 | 0 | 0 | 0 |
mockserver.js | 0 | 0 | 0 | 0 | 1-115
webapp/model | 100 | 100 | 100 | 100 |
models.js | 100 | 100 | 100 | 100 |
-------------------|---------|----------|---------|---------|------------------
您可以在中看到完整的设置
你知道我在这里遗漏了什么吗?非常感谢你的帮助
谢谢看来这是个好主意。解决方案是将karma升级到5.2.0
。也许可以试一试吗?看来这是一个好机会。解决方案是将karma升级到5.2.0
。也许可以试一试