我无法测试使用create-react-app创建的应用程序,所有指南都说测试默认工作,但是当我尝试"纱线测试"它需要安装' jest-cli'并且在安装后出现错误" TypeError:environment.teardown不是函数"。
答案 0 :(得分:18)
您不需要自己安装jest-cli,它应该是开箱即用的。
尝试以下方法:
答案 1 :(得分:3)
在“ package.json”中添加新版本的“ jest-environment-jsdom”。
答案 2 :(得分:1)
在我的情况下,它引发了此错误,因为我使用print(nom,', ', tit, '. ', jou, '.', dat, '. Pubmed: ' if len(pbm)!=0 else "", pbm if len(pbm)!=0 else "", sep="")
创建了我的react项目并安装了create-react-app
。在某种程度上,它有冲突。
我通过从项目中删除jest
并使用jest
测试脚本来解决该问题。
答案 3 :(得分:1)
经过一个晚上的讨论之后,我想我终于解决了。首先,让我描述一下问题:
我也得到了:
TypeError: environment.teardown is not a function
因为我正尝试将jest升级到最新版本。使用Create-React-App启动应用程序时,它将安装不包含所有功能的早期版本的jest。我对使用inlineSnapshots功能感兴趣,该功能使您可以针对测试文件中的HTML标记声明呈现的组件。
您应该知道,Create-React-App或jest的文档中未包含一些内容。如果要使用更新的笑话功能(例如inlineSnapshots),则需要执行以下操作:
docblock是带有实用标记“ @”的JS块注释。为了设置笑话环境,您可以将其添加到每个测试文件的顶部:
/**
* @jest-environment jsdom
*/
这指示玩笑在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正常工作。
答案 4 :(得分:1)
如果您尚未在项目中使用create-react-app
:
jest, jest-cli, jest-environment-jsdom
中删除package.json
。npm --save i
或yarn add
安装它们,以使它们具有相同的版本。这应该有效!
就我而言,我缺少jest-environment-jsdom
包裹。
答案 5 :(得分:0)
对我来说,这是模块导入绑定。基本上对我来说,这是模块导出/导入绑定。
基本上,如果使用module.export
导出,则应使用require
导入。如果使用export
或export default
导出,则应使用import
导入。
这里不允许混音。