Javascript 如何将jest.config.js与create react应用程序一起使用
我想将我的jest配置从我的package.json中移出,我正试图按照建议使用--config,但得到的错误是Javascript 如何将jest.config.js与create react应用程序一起使用,javascript,reactjs,testing,jestjs,create-react-app,Javascript,Reactjs,Testing,Jestjs,Create React App,我想将我的jest配置从我的package.json中移出,我正试图按照建议使用--config,但得到的错误是argv.config.match不是一个函数 package.json cli hutber@hutber-mac:/var/www/management/node$npm test-u >管理层-fresh@0.1.0test/var/www/management/node >react脚本测试——config jest.config.js 用法:test.js[--config=
argv.config.match不是一个函数
package.json
cli
hutber@hutber-mac:/var/www/management/node$npm test-u
>管理层-fresh@0.1.0test/var/www/management/node
>react脚本测试——config jest.config.js
用法:test.js[--config=][TestPathPattern]
argv.config.match不是函数
npm错误!测试失败。请参见上文了解更多详细信息。
我会尝试向您的package.json中添加“test”:“jest--no cache-w 2”
。然后运行npm运行测试
这一次我也受够了!创建react应用程序有点棘手,因为它已经包含了笑话。我删除了
--config jest.config.js
行,不需要额外的test.config文件
我还确保我的酶文件名为setupTests.js。测试模块将特别希望运行该文件,因此必须将其命名为该文件。另外,我必须把它放在我的src/文件夹中,之前我把它放在src/测试文件夹中。如果你问的是上述问题,你可能已经过了这一步,但想提一下以防万一。我的setupTests.js看起来像:
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Enzyme.configure({
adapter: new Adapter()
})
对我来说,添加“---config=jest.config.js”有效
所以整个字符串react scripts测试--config jest.config.js
,在您的例子中;DR
在选项之前添加--
"test": "react-scripts test -- --config=jest.config.js",
这里的问题是
react脚本
看不到传递给的选项
信息技术我们可以通过直接运行它来演示这一点
/node\u modules/.bin/react scripts test--config=jest.config.js
#argv.config.match不是函数
./node_modules/.bin/react脚本测试--config=jest.config.js
#这很有效。
变化
将选项传递给脚本的方式因npm的版本而异
您使用的纱线。为完整起见,以下是变更的结果:
#这会运行,但会完全忽略该选项。
npm测试--config=jest.config.js
#这些结果导致“argv.config.match不是函数”,这表明
#人们不了解各种选择。
npm测试--config=jest.config.js
纱线测试--config=jest.config.js
纱线测试--config=jest.config.js
package.json
中使用
"test": "react-scripts test",
您可以像这样设置其他选项
"test": "react-scripts test -- --config=jest.config.js",
如果希望通过CLI发送选项,则类似的操作可能会起作用
"test": "react-scripts test --",
纱线测试——提环
#作为
反应脚本测试--bail
资源
下面是一些资源来解释不同的用法
- 对我来说,上述答案都不管用。但在文档的帮助下,我找到了解决方法。
为此,将要配置jest的代码放在
您的\u项目\u根\u文件夹/src/setupTests.js
中。我的您的\u项目\u根\u文件夹/src/setupTests.js
如下所示
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({
adapter: new Adapter(),
})
还有一点很重要,您需要为react v16
使用enzyme-adapter-react-16
,为react v15
使用enzyme-adapter-react-15
此外,如果您想将酶用于json
,可以将以下代码放在package.json
文件中
"jest": {
"snapshotSerializers": ["enzyme-to-json/serializer"]
}
执行此操作时,我收到一个错误-
无效的测试模式--config=jest.config.js |--coverage=true |--watch |--config{“root”:[“/src”],“CollectCoverage from”:[“src/***.{js jsx,ts,tsx},“!src/***.d.ts”],“setupFiles”……改为运行所有测试
我怀疑,当您添加--config
时,它会忽略默认情况下与create react app捆绑在一起的jest配置。@Chasenbetinger,这是因为您在使用yarnI时,在尝试设置testURL时遇到了无效的testPattern
错误(jest在请求中用作源的location.href(对于CORS)。我最后做了DEBUG\u PRINT\u LIMIT=20000 react应用程序重新布线测试--testURLhttp://origin.domain.com
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({
adapter: new Adapter(),
})
"jest": {
"snapshotSerializers": ["enzyme-to-json/serializer"]
}