确保在 Jest transformIgnorePatterns 中也包含该文件

Posted

技术标签:

【中文标题】确保在 Jest transformIgnorePatterns 中也包含该文件【英文标题】:make sure to include the file in Jest's transformIgnorePatterns as wel 【发布时间】:2020-01-01 04:32:40 【问题描述】:

我正在尝试在反应中进行玩笑/酶测试

我有这个测试:

import React from 'react';

import  shallow  from 'enzyme';
import  mount  from 'enzyme'

import WorkOutForm from './workOutForm';

describe('WorkOutForm', () => 
      it('should start a new workoutForm with empty state', () => 
        const component = mount(<WorkOutForm/>)

        expect(component).toMatchSnapshot();
      );
   )

但是当我执行npm run test 时,我会收到:

src/workout/workOut.test.js ● 测试套件运行失败

babel-jest: Babel ignores src/workout/workOutForm.jsx - make sure to include the file in Jest's transformIgnorePatterns as well.

我尝试在 package.json 中添加这个文件:

  "jest": 
    "transformIgnorePatterns": [
      "src/workout/workOutForm.jsx"
    ]
  

但我收到了同样的错误。 我必须把这个放在哪里?

【问题讨论】:

【参考方案1】:

我必须把这个放在哪里?

您应该忽略 jsx 源文件。您需要做的是使用 babel 将您的 jsx 转换为 js。

您需要使用babel-preset-react。这将自动为转换添加@babel/plugin-transform-react-jsx

然后把它放到你的.babelrc


  "presets": ["@babel/preset-react"]

【讨论】:

【参考方案2】:

我已经有这个错误,我修复了更改代码:

"ignore": [
   "./test",
   "./src/assets",
   "./src/stories",
   "./src/.storybook"
]

到这里:

"ignore": [
   "./src/assets",
   "./src/stories",
   "./src/.storybook"
]

我从 .babelrc ignore prop 中删除了我的测试文件夹,它对我有用!

【讨论】:

以上是关于确保在 Jest transformIgnorePatterns 中也包含该文件的主要内容,如果未能解决你的问题,请参考以下文章

Mocha 与 Jest 测试框架比较

Jest - 模拟和测试 node.js 文件系统

Jest + Vue - SyntaxError: Unexpected token <

如何使用 Jest 测试异步存储?

React + Jest 测试错误 - ReferenceError: 未定义期望

如何使用 jest 来监视 Schema.virtual 的猫鼬?