我正在向一段 React 代码添加一个快照测试,但我遇到了这个错误:
意外的 Node 类型:SequenceExpression(这是内部 Node 上的错误。可能是内部错误。位置已被估计。)
代码转译并工作得很好,AST explorer不会警告我任何事情。
在这个新测试之前,没有其他测试给我任何类似的错误,我们的代码库中有很多这样的错误。
我尝试重新安装 jest
,重新安装 babel-jest
,删除并重新安装所有模块(使用 yarn --pure-lock
),将 jest
和 babel-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/