- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 create-react-app
创建的应用程序以及一些用 Jest + Istanbul 编写的 UI 测试。
我想获得这些 UI 测试的代码覆盖率。我喜欢继续使用 jest,因为我已经将它用于单元测试。
如果可能的话,我不想弹出create-react-app
。但如果没有其他选择,我愿意接受。
到目前为止我尝试过的:
在package.json
"scripts": {
"uitest": "react-scripts test --env=jsdom --verbose --testMatch='**/*.ui-test.{js}'",
}
如果我运行npm run uitest -- --coverage
^ 我认为在上面的场景中它只捕获测试而不是实际的应用程序。
如何解决这个问题?
<小时/>其他失败的尝试:
1) How to cover React jsx files in Istanbul? - 不要申请,因为我正在使用 create-react-app
2) https://github.com/facebook/create-react-app/issues/3257 - 显然这个功能被建议但被拒绝了。
3) https://github.com/istanbuljs/puppeteer-to-istanbul/issues/18 - 有一个名为 puppeteer-to-istanbul 的库,但它不支持源 map 。 (问题见链接)
4) 我还查看了 safaribooks 上的 Node.js Web Development - Fourth Edition 这本书 - 我找到了 Puppeteer 的有用指南,但它似乎没有涵盖代码覆盖率。
5) safaribooks 上的《持续集成和交付实践》一书 - 有一个关于 Puppeteer + Jest 测试的部分,没有提及任何有关代码覆盖率的内容。
6)我尝试了puppeteer-to-istanbul
->我们可以通过这种方式计算bundle的代码覆盖率,它不支持源映射。
7) 尝试了 Enselic 的建议,但未能成功。当尝试推送 babel-plugin-istanbul
时,自定义预设内的 push
方法似乎崩溃了。
最佳答案
你好像缺少collectCoverageFrom package.json
文件中的选项。
尝试在 package.json
中插入类似以下内容:
"jest": {
...
"collectCoverageFrom": [
"src/**/*.{js,jsx}",
"!**/setupTests.js",
"!**/**/*.test.js"
],
此外,跳过测试文件的覆盖范围也是个好主意,因为它会破坏整体覆盖范围。对于这种情况,请在 collectCoverageFrom
数组中使用 !
,如示例所示;)
关于reactjs - React 与 Puppeteer + Istanbul 的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53485370/
nyc 中使用的仪器是什么? nyc's instrument command can be used to instrument source files outside of the contex
我正在尝试将我的 istanbul 代码覆盖率命令转换为 nyc。 看起来nyc现在是 Istanbul 尔测试覆盖率库的命令行界面。 在 Istanbul 尔,我们会得到这样的报道: istanbu
请问有人知道我如何解决这个问题吗?我的 test:coverage 定义如下。 scripts{ "test:coverage": "babel-node ./node_modules/.bin/i
我正在使用 coverageIstanbulReporter 为我的 javascript 项目生成代码覆盖率报告。默认输出 xml 文件名为“cobertura-coverage.xml”。我想将此
我的代码有多个 if声明但没有相应的 else声明。我一直在加/* istanbul ignore else */单独用于所有这些 if语句以忽略相应的缺失 else块。有没有办法忽略所有丢失的 el
NYC/Istanbul 代码报告工具是否会忽略 VueJS 组件文件(扩展名为 .vue)中的模板和样式标签。 nyc 够聪明吗? 最佳答案 是的,这是可能的@light24bulbs!我已经让 n
在 istanbul JS 代码覆盖率工具生成的 HTML 报告中,带有黑色背景的“I”和“E”符号表示什么? 最佳答案 这些符号位于 if-else 语句的前面。 正如您在附加的图像中看到的那样,'
有人可以帮忙解决以下问题吗? 我的操作系统是最新的 windows 10,时区是 (UTC+0300) Istanbul(夏令时已被移除,时区设置为 +0300 在土耳其的最新规定之后 - 2016
想把漂亮的 Linux 桌面录制下来与他人分享?要给朋友演示 Linux 的使用技巧?遇到的 Linux 问题实在难以描述?Istanbul能满足你的要求。使用 Istanbul,你可以将 Linu
我有一个用 Mocha 编写的测试的 React 项目。 Istanbul 尔用于获取测试覆盖率。 我在名为 lib 的文件夹中有 4 个 react 组件并在 test文件夹,我只为 2 个组件编写
我目前正在用 mocha 和 nyc 测试我的覆盖范围,我注意到我的一些断言调用没有被调用。如何在 nyc 中包含我的测试文件以确保涵盖所有断言? 我尝试过: "nyc": { "include"
刚刚开始使用一般的代码覆盖工具,但我认为我已经正确设置了所有内容。但是, Istanbul 尔正在生成我的规范文件而不是源文件的覆盖率报告? 当我运行jasmine-node RepeatSpec.j
我正在测试一个简单的应用程序(来自此处的 Mocha 教程代码 https://marcofranssen.nl/using-mocha-chai-sinon-to-test-node-js/ )以尝
我正在使用 istanbul 和 nyc 命令运行 NodeJs 的代码覆盖率报告。 我正在使用 mocha 进行单元测试 正如预期的那样,我得到了每个文件的报告,但我希望看到的是具有单个目录摘要的报
我收到一份空报告,它列出了文件,但没有填写百分比...... 知道是什么原因造成的吗? 错误信息: Handlebars:访问已被拒绝解析属性“声明”,因为它不是其父级的“自己的属性(property
我目前正在最终覆盖范围内获取我的测试文件。那可能是因为它们与我的组件并排放置而不是拥有自己的 测试 文件夹。 如何将这些排除在保险范围之外? 我已安装 Istanbul 尔 和 纽约 我正在使用 Mo
我正在开发 lite javascript 框架,尽管我确定在制定规范时几乎所有函数都被调用,但我的覆盖率语句无法达到 10%。 如果有人知道我做错了什么,我会很高兴听到。 我的项目构建: https
在初始状态下,我有例如app.module.js 包含以下 Angular 应用程序代码: 'use strict'; var app = angular.module('bumblebee', []
我正在运行 Istanbul 尔并获得报告,我已经在循环中创建了一个后命令来运行它,并且没有收到任何错误,如何配置输出目录或后任务以将输出复制到其中的文件夹哪个Circle可以自动拾取? 谢谢!吉列尔
我有一种情况,我的所有测试都并行运行,并创建了覆盖率报告。 我能够使用命令行中的 --dir 选项为每个测试创建一个单独的覆盖文件夹,这很棒。 现在我有了所有这些包含覆盖详细信息的文件夹,是否可以将所
我是一名优秀的程序员,十分优秀!