angular - 我可以跨 Nx Angular 单一存储库合并多个覆盖率报告吗?
问题描述
我让 Jenkins 构建了我们的 nx Angular 单一存储库。现在,每个应用程序/模块都会在覆盖目录下生成自己的报告。是否有一种经过批准的方法或一种好方法可以将所有这些报告合并到一个 html 报告中?
解决方案
我自己也有同样的问题。在 3 个不同的项目中遇到这种需求后,我决定写一篇关于它的博客文章: https ://yonatankra.com/how-to-create-a-workspace-coverage-report-in-nrwl-nx-单回购/
本质上,我编写了一个脚本来获取lcov
文件并将它们组合起来:
const glob = require('glob');
const fs = require('fs');
const path = require('path');
const getLcovFiles = function (src) {
return new Promise((resolve, reject) => {
glob(`${src}/**/lcov.info`, (error, result) => {
if (error) return reject(error);
resolve(result);
});
})
};
(async function(){
const files = await getLcovFiles('coverage');
const mergedReport = files.reduce((mergedReport, currFile) => mergedReport += fs.readFileSync(currFile), '');
await fs.writeFile(path.resolve('./coverage/lcov.info'), mergedReport, (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
})();
test
然后我在 npm脚本之后使用它。
如果需要 JSON 格式,可以在合并后使用https://github.com/davglass/lcov-parse或其他转换器。
推荐阅读
- sql - Switch(Select) 是否在 TRANSFORM 和 SELECT 之间工作?
- mysql - MySQL SELECT 查询有效,但具有相同 WHERE 子句的 UPDATE 查询无效
- android - Flutter TextField TextAlignVertical
- ios - 在传入的连续数据之间快速平滑(插值)
- c# - 向串口发送数据时如何获得链接速度和传输百分比?
- python - 绘制多个直方图,工作时间取决于月份和 event_name
- java - JFrame 组件必须有一个有效的对等体
- byte - 如何播放音频字节 exoplayer
- android - Firebase 消息传递项目的 Google Analytics 升级失败
- c - 尝试使用 olog() 函数连接 oracle 19c 数据库时出现分段错误