javascript - 删除/忽略伊斯坦布尔 html 或 lcov 覆盖报告页脚时间戳
问题描述
现在我有一个 monorepo using lerna
,每个包都有它自己的测试/覆盖工具,这意味着一个包可以使用ava
+nyc
另一个可以使用jest
。我正在为每个包单独构建覆盖范围,因此每个包都有自己的覆盖文件夹。这导致 lerna 在我发布时无法判断要更新哪些包,因为每当我运行一个新测试时,我都有一个充满新覆盖率文件的提交,这都是因为这一行:
Code coverage generated by istanbul at Wed Apr 25 2018 00:03:42 GMT-0400 (EDT)
我已经在伊斯坦布尔找到了页脚,并且可能会添加一个在页脚中没有时间戳的新记者,伊斯坦布尔接受此更改的机会很小。
我正在寻找一种使用 git / diffing 来忽略(签出)对文件中这一行的更改的方法。问题是没有一致的方式(可能是正则表达式)来忽略这个文件,这意味着它并不总是在同一行。所以我不能使用补丁文件。
我会喜欢任何关于忽略对这样的特定文件的给定更改的建议。
选项:
- 考虑将 PR 添加到伊斯坦布尔或删除时间戳的分叉(不利)
- 当生成新的覆盖并且最新的和新的之间的差异只是这个页脚更改时,如果没有进行实际更改,则通过结帐保留原始时间戳来尊重文件。
jsdom
使用使用节点解析文件创建脚本html
,并一起删除时间戳,并在覆盖脚本运行后更新覆盖文件。
寻找建议!
解决方案
我以不同的方式解决了这个问题。
答:我更改了报道记者,只提供不包含任何特定时间戳数据的 JSON。
lerna exec -- "json -I -e \"this.jest.coverageReporters=['json']\" -f ./package.json"
B. 我删除了所有报告,只留下 JSON
lerna exec -- rm -rf ./coverage/lcov-report
C. 向父项目添加脚本以构建覆盖(合并所有 json 文件)
istanbul report --include=./packages/**/coverage/coverage-final.json
这具有为所有包生成一个站点的额外好处,而不管包是如何被测试的。
推荐阅读
- waf - 将 --all 选项添加到 wscript
- go - 将文件用作标准输入(Golang)时在第二个提示上获取 EOF
- c - 打印数组中缺少第一个字符(While 循环)
- c++ - BlockSci 编译中的错误
- javascript - 在节点服务器提供的静态 html 文件上注入脚本标签
- git - 清除案例到 Git swarm 代码库移动
- media - 问“播放新闻”时没有媒体回应
- node.js - 这是否可以在nodejs中验证远程用户和密码存在检查?
- eclipse - Eclipse Photon,跳过欢迎,缺少复选框
- python - Flask 应用程序中的 asyncio event_loop