node.js - 在容器中运行挂载测试后,伊斯坦布尔覆盖率未知
问题描述
我正在尝试为在 docker 容器中运行的单元测试设置覆盖范围。但是,覆盖率报告无法在容器内按预期生成。但是,当命令在容器外(在 Mac OSX 和 CentOS 上)运行时,它们会成功生成。
我将我的代码库安装到图像中预先存在的路径上。
图片基于节点:8.11.4
karma v3.1.4
karma-coverage v1.1.2
karma-coverage-istanbul-reporter v2.0.4
karma-webpack v4.0.0-rc.5
istanbul-instrumenter-loader v.3.0.1 .
尝试梳理问题:
__dirname
在 karma.conf.js 中将basePath 设置为path.join
使用karma.conf.js 和 webpack 使用的入口点规范化所有路径。- 验证源被捆绑。
- 在 Mac OSX 和 CentOS 上运行外部容器(报告成功)
- 将仪器的调试设置为 true(无错误)
- 从容器内部重新安装已安装的 node_modules
- 使用
coverage
和istanbul-coverage
记者。 - 关闭 Chrome v72.0.3626.81 的沙盒(无头)
- 在本地和 Jenkins 中运行(结果相同)
- 删除
-u $(id -u):$(id -g)
没有任何区别
你想看什么代码?
docker run --privileged \
-u $(id -u):$(id -g) \
--mount type=bind,source=$(pwd),dst=/home/node/test/ \
-it $DOCKER_IMAGE \
/bin/bash -c "npm test"
预期的:
=============================== Coverage summary ===============================
Statements : 22.71% ( 7684/33837 )
Branches : 15.17% ( 2887/19027 )
Functions : 21.85% ( 1384/6334 )
Lines : 21.45% ( 6719/31327 )
================================================================================
实际的:
17:40:18 =============================== Coverage summary ===============================
17:40:18 Statements : Unknown% ( 0/0 )
17:40:18 Branches : Unknown% ( 0/0 )
17:40:18 Functions : Unknown% ( 0/0 )
17:40:18 Lines : Unknown% ( 0/0 )
17:40:18 ================================================================================
解决方案
在 Angular 应用程序中对我有用的东西 - 你在 CLI ng 测试中运行 --code-coverage 它神奇地显示了覆盖率
推荐阅读
- google-chrome - 本地托管的 HTTPS 站点给出有关 websocket 的 Chrome 错误(使用 ParcelJS 包时)
- node.js - Docker compose 未正确复制文件以运行反应应用程序
- db2 - 无法将数据插入到 IDAA 服务器中的 AOT(仅加速表)表中
- android - 如何使用 volley 访问 json 数据?
- python - 在 Celery - Python 中的进程(工作者)之间共享数据的最佳解决方案是什么?
- php - 防止日志中的重复条目
- python-3.x - 评估功能没有返回正确答案?
- android - Android - 即时更改语言
- mysql - 如何在 CASE 中有 AS 别名
- shell - 通过 Jenkins 管道中的 shell 脚本运行 ansible playbook 时,回显输出被缓冲并且不会实时显示