node.js - 在容器中运行挂载测试后, Istanbul 尔覆盖率未知

标签 node.js docker ubuntu karma-runner istanbul

我正在尝试为在 docker 容器中运行的单元测试设置覆盖范围。但是,覆盖率报告无法在容器内按预期生成。但是,当命令在容器外(在 Mac OSX 和 CentOS 上)运行时,它们会成功生成。

我将我的代码库安装到图像中预先存在的路径上。

图片基于node:8.11.4
karma v3.1.4
karma 覆盖 v1.1.2
karma 覆盖 Istanbul 尔报告者 v2.0.4
karma -webpack v4.0.0-rc.5
Istanbul 尔仪器装载机 v.3.0.1 。

尝试梳理问题:

  • 将 basePath 设置为 __dirname在 karma.conf.js
  • 使用 path.join 规范化所有路径在 karma.conf.js 和 webpack 使用的入口点中。
  • 验证源被捆绑。
  • 在 Mac OSX 和 CentOS 上运行外部容器(报告成功)
  • 将仪器的调试设置为真(无错误)
  • 从容器内重新安装已安装的 node_modules
  • 使用coverageistanbul-coverage记者。
  • 关闭 Chrome v72.0.3626.81 的沙盒( headless )
  • 在本地和 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
    它神奇地显示了覆盖范围

    关于node.js - 在容器中运行挂载测试后, Istanbul 尔覆盖率未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56606623/

    相关文章:

    linux - 如何用同一文本行中的尾随字符替换字符匹配项?

    Linux 路径/依赖关系处理

    xml - 在 NodeJS 中根据模式 (xsd) 验证 XML

    javascript - Fastify 插件 fastify-autoload 错误插件必须是一个函数

    docker - Promtail - 基于带有 docker-compose 标签的服务发现和 Grafana 日志浏览器中的标签

    Docker 中的 R 安装卡在地理区域

    linux - 在Linux上使用文本浏览器显示代理信息

    node.js - 如何在客户端网站嵌入nodejs应用程序?

    node.js - 端口转发无法设置本地 Web 服务器

    docker - Docker客户端(容器内)可以使用UNIX套接字与EC2上的Docker守护进程进行通信吗?