Reactjs 通过babel、nyc和istanbul插件从Cypress获得代码覆盖率?
对于React/Redux项目,我使用Cypress测试UI。我需要从thoses测试中获得代码覆盖率,以便在Sonar中获得详细信息(但这是另一回事) 所以我开始阅读Cypress的文档: 我按照说明找到了不同的插件,但没有任何效果。在运行Cypress测试后,我没有覆盖率结果,当我尝试在transpilation上使用插入指令的代码运行服务器并尝试获取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
窗口时,它是未定义的
这是我的配置
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
}