Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 通过babel、nyc和istanbul插件从Cypress获得代码覆盖率?_Reactjs_Testing_Babeljs_Cypress_Istanbul - Fatal编程技术网

Reactjs 通过babel、nyc和istanbul插件从Cypress获得代码覆盖率?

Reactjs 通过babel、nyc和istanbul插件从Cypress获得代码覆盖率?,reactjs,testing,babeljs,cypress,istanbul,Reactjs,Testing,Babeljs,Cypress,Istanbul,对于React/Redux项目,我使用Cypress测试UI。我需要从thoses测试中获得代码覆盖率,以便在Sonar中获得详细信息(但这是另一回事) 所以我开始阅读Cypress的文档: 我按照说明找到了不同的插件,但没有任何效果。在运行Cypress测试后,我没有覆盖率结果,当我尝试在transpilation上使用插入指令的代码运行服务器并尝试获取窗口时,它是未定义的 这是我的配置 package.json中的My devDep和NYC conf: 我的.babelrc文件: { "pr

对于React/Redux项目,我使用Cypress测试UI。我需要从thoses测试中获得代码覆盖率,以便在Sonar中获得详细信息(但这是另一回事)

所以我开始阅读Cypress的文档:

我按照说明找到了不同的插件,但没有任何效果。在运行Cypress测试后,我没有覆盖率结果,当我尝试在transpilation上使用插入指令的代码运行服务器并尝试获取
窗口时,它是
未定义的

这是我的配置

package.json中的My devDep和NYC conf:

我的
.babelrc
文件:

{
"presets": ["@babel/preset-react"],
"plugins": [
    [ "react-intl", {
        "messagesDir": "./src/messages",
        "extractSourceLocation": true
    }],
    "transform-class-properties",
    "istanbul"
],
"env": {
    "test": {
      "plugins": [ "transform-class-properties", "istanbul" ]
    }
  }
}
我的
\cypress\support\index.js
包含以下行:

import'@cypress/code覆盖率/支持'

这是我的
\cypress\plugins\index.js

module.exports = (on, config) => {
    on('task', require('@cypress/code-coverage/task'))
    on('file:preprocessor', require('@cypress/code-coverage/use-babelrc'))
    return config
}
所以我希望有一个结果,就像你在Cypress文档上看到的那样。 网站已生成,但包含覆盖率报告的文件为空


我不明白我的配置有什么问题。

我也面临这个问题。无法获得代码覆盖率。将
nyc
版本从
14.x.x
降级到
13.x.x
修复了问题,如前所述。

嘿,科伦丁,你是否使用未截取的react脚本?在这种情况下,将不使用.babelrc文件。幸运的是,即使是
react scripts start
caseey-Gleb,您也可以使用它来为应用程序插入指令!我认为这是不可接受的,但这是wierd,因为当我从JSX中提取React-Intl的消息时,似乎使用了.babelrc文件。但感谢使用CRA的想法。:)@科伦蒂戴利你有什么解决办法吗?我也面临同样的问题。覆盖率报告为空。github.com/cypress-io/instrument-cra也给出了错误。@LAXITKUMAR与您不一样,但我仍在寻找解决方案。覆盖率报告始终为空,在
窗口下未检测到任何内容。
module.exports = (on, config) => {
    on('task', require('@cypress/code-coverage/task'))
    on('file:preprocessor', require('@cypress/code-coverage/use-babelrc'))
    return config
}