我无法测试使用 create-react-app 创建的应用程序。
所有指南都说测试默认工作,但是当我尝试“yarn test”时,它需要安装'jest-cli'并且安装后出现错误:
类型错误:environment.teardown 不是函数
我无法测试使用 create-react-app 创建的应用程序。
所有指南都说测试默认工作,但是当我尝试“yarn test”时,它需要安装'jest-cli'并且安装后出现错误:
类型错误:environment.teardown 不是函数
您不需要自己安装 jest-cli。它应该开箱即用。
尝试以下操作:
npm installor yarn install。将新版本的“jest-environment-jsdom”添加到文件“package.json”中。
如果您还没有用于create-react-app该项目:
jest, jest-cli, jest-environment-jsdom从package.json.npm --save i或yarn add安装它们,使它们中的每一个都具有相同的版本。这应该工作!
就我而言,我错过了jest-environment-jsdom包裹。
create-react-app就我而言,它会引发此错误,因为我使用和 install创建了我的 React 项目jest。在某种程度上它是冲突的。
我通过从我的项目中删除并使用测试脚本来解决它。jestcreate-react-app
在这个问题上敲了一个晚上之后,我想我终于解决了。首先,让我描述一下问题:
我也得到:
类型错误:environment.teardown 不是函数
因为我试图将 Jest 升级到最新版本。使用 Create-React-App 启动应用程序时,它会安装不包含所有功能的早期版本的 Jest。我对使用 inlineSnapshots 功能很感兴趣,它允许您针对测试文件中的 HTML 标记断言呈现的组件。
Create-React-App 或 Jest 的文档中未包含一些您应该注意的内容。如果您想使用更新的 Jest 功能,例如 inlineSnapshots,则需要执行以下操作:
docblock 是带有 pragma 标记“@”的 JavaScript 块注释。为了设置 Jest 环境,您可以将其添加到每个测试文件的顶部:
/**
* @jest-environment jsdom
*/
这指示 jest 在 jsdom 环境中运行测试,它应该与package.json文件的测试脚本部分中传递的内容相匹配。我的看起来像这样(忽略带有 react-app-rewired 的部分):
"scripts": {
"start": "yarn run flow && react-app-rewired start",
"build": "yarn run flow && react-app-rewired build",
"test": "react-scripts test --env=jsdom"
}
在完成所有这些之后,我终于能够让 inlineSnapshots 工作了。
对我来说,这是模块导入绑定。基本上,对我来说,它是模块导出/导入绑定。
基本上如果它是使用导出的module.export,你应该使用导入require。如果它是使用export或导出的export default,则应该使用 导入import。
这里不允许混合。