在容器中运行安装测试后,伊斯坦布尔覆盖率未知%

时间:2019-06-15 01:16:50

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

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

我将代码库安装到映像中的先前路径。

图片基于node:8.11.4
业力v3.1.4
业力报偿v1.1.2
因果报偿-伊斯坦布尔报道v2.0.4
业力webpack v4.0.0-rc.5
istanbul-instrumenter-loader v.3.0.1。

尝试解决问题:

  • 在karma.conf.js中将basePath设置为__dirname
  • 使用karma.conf.js中的path.join和webpack使用的入口点对所有路径进行标准化。
  • 验证来源是否已捆绑。
  • 在Mac OSX和CentOS上运行外部容器(报告成功)
  • 将检测器的debug设置为true(无错误)
  • 从容器内部重新安装已安装的node_modules
  • 使用coverageistanbul-coverage记者。
  • 关闭Chrome v72.0.3626.81(无头)的沙箱
  • 在当地和詹金斯(结果相同)
  • 删除-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 ================================================================================

1 个答案:

答案 0 :(得分:0)

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