node.js - 意外的 Node 类型错误 SequenceExpression with jest

标签 node.js reactjs jestjs babeljs

我正在向一段 React 代码添加一个快照测试,但我遇到了这个错误: 意外的 Node 类型:SequenceExpression(这是内部 Node 上的错误。可能是内部错误。位置已被估计。)

代码转译并工作得很好,AST explorer不会警告我任何事情。

在这个新测试之前,没有其他测试给我任何类似的错误,我们的代码库中有很多这样的错误。

我尝试重新安装 jest,重新安装 babel-jest,删除并重新安装所有模块(使用 yarn --pure-lock),将 jestbabel-jest 升级到最新版本(两者都是 20.0.1),冲洗并重复。
没有任何效果。

这仅在我尝试收集覆盖率(使用 --coverage)时发生,而它出现的最小片段是:

import { tint } from 'polished'
import styled from 'styled-components'

export default styled.label`
  background: ${({ x, y }) => (x ? tint(0.3, y.a) : y.b)};
`

最佳答案

这是我发现的:

这是一个 Jest 代码覆盖率能够理解样式化组件和完善的问题。我正在在我的 babelrc 中使用 babel-plugin-polished 和以下内容:

“插件”:[“抛光”]

但是,如果您对一个值调用 export,并且不在对象或导出的对象中也使用该值,它仍然会失败。

失败:

export const charcoalBlue = rgb(104, 131, 145);

不失败:

export const charcoalBlue = rgb(104, 131, 145);
const colors = { charcoalBlue }

所以我的解决方案是忽略我的样式文件,或者只是确保我使用的是我创建的值,而不仅仅是导出它们。

一种忽略样式文件的方法,将它放在你的 package.json 中:

"jest": {
  "collectCoverageFrom": [
    "src/**/*.{js,jsx}",
    "!**/*.styles.js",
  ]
}

并将您的样式文件命名为{ComponentName}.styles.js

希望这对您有所帮助!

关于node.js - 意外的 Node 类型错误 SequenceExpression with jest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43940649/

相关文章:

javascript - 客户端如何同步调用服务端?

javascript - 与 Redux react : Module build failed: SyntaxError: Unexpected token <

reactjs - 如何使用 Ant 设计处理 Checkbox 组功能

javascript - 在 react 组件之间传递数据

node.js - 添加到主屏幕不会出现在我的 Angular 应用程序中

javascript - MaxListenersExceededWarning : Possible EventEmitter memory leak detected. 添加了 11 个消息监听器。使用 emitter.setMaxListeners() 增加限制

javascript - 如何在新行中将 JS 对象推送到 JSON?

typescript - 如何模拟 ServiceBusError 异常以进行 Jest 测试?

javascript - 为什么这个模拟 api 不能按预期工作?

javascript - 当 React 组件具有事件处理程序时,如何通过使用 enzyme shallow with contains 的测试用例