【问题标题】:Istanbul coverage unknown% after running mounted tests in container在容器中运行挂载测试后,伊斯坦布尔覆盖率未知
【发布时间】:2019-10-29 14:09:45
【问题描述】:

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

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

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

尝试梳理问题:

  • 在 karma.conf.js 中将 basePath 设置为 __dirname
  • 在 karma.conf.js 和 webpack 使用的入口点中使用 path.join 规范化所有路径。
  • 验证源被捆绑。
  • 在 Mac OSX 和 CentOS 上运行外部容器(报告成功)
  • 将仪器的调试设置为 true(无错误)
  • 从容器内重新安装已安装的 node_modules
  • 使用coverageistanbul-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 ================================================================================

【问题讨论】:

    标签: node.js docker ubuntu karma-runner istanbul


    【解决方案1】:

    在 Angular 应用程序中对我有用的东西 - 你在 CLI ng 测试中运行 --code-coverage 它神奇地显示了覆盖范围

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 2015-07-29
      • 1970-01-01
      • 2015-07-02
      • 2017-07-27
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      相关资源
      最近更新 更多