首页 > 解决方案 > Cypress nyc 代码覆盖率未检测代码

问题描述

我正在尝试在我的反应应用程序中引入 e2e 代码覆盖率。我可以看到hash-file.json正在创建.nyc_output

以下是我的package.json脚本

{
        "start": "npm run clean && cross-env NODE_ENV=test node ./tools/devServer.js",
        "e2e": "nyc cypress open",
}

在此处输入图像描述

它没有更新.nyc_output/out.json

在此处输入图像描述

.babelrc

{
    "presets": [
        "@babel/preset-react"
    ],
    "env": {
        "test": {
          "plugins": [ "istanbul"], {
            "exclude": [
              "src/**/*.spec.js",
              "src/**/*.test.js",
              "e2e-coverage"
            ],
            "include":["src/"]
          }]
        }
      },
    "ignore": ["node_modules","build"]
}
  1. 上面的 has-file.json 是什么,为什么创建它,如果我正确地遵循而不是这个,它应该在 out.json 中写入覆盖范围?

  2. 我关注了文档,但在检测代码时似乎仍然存在一些问题。(可能是什么问题 ?)

  3. 在一些示例中,我看到了日志isInteractive:true,这是什么意思,它的配置处理程序在哪里?

  4. 什么可能是它没有得到检测的预期原因 在此处输入图像描述

在此处输入图像描述

解决方案:-

我遵循并将检测过程作为 webpack 构建加载器的一部分包含在内,它运行良好。但我仍然在寻找以上几点的答案。我期待babel-istanbul-plugin会即时完成,无需使用 webpack。

https://webpack.js.org/loaders/istanbul-instrumenter-loader/

标签: code-coveragecypressnyc

解决方案


推荐阅读