我在我的设置文件中获取了SyntaxError: Unexpected token import
以进行我的Jest测试。我知道修复是通过.babelrc
文件。这实际上适用于一些案例。我从https://github.com/zeit/next.js/tree/canary/examples/with-jest复制粘贴。
当我运行npm test
时,它失败了。当我运行npm run test
时,它也会失败。当我运行npm run test:coverage
时,可以运行。我的脚本是:
"test": "NODE_ENV=test jest",
"test:coverage": "NODE_ENV=test jest --coverage --coverageDirectory=coverage",
如果我将test:coverage
更改为NODE_ENV=test jest
,则会失败。因此,以某种方式请求报道报告可以神奇地解决问题。
npm install
。然后失败的情况与我上面写的相反。
我的设置文件是:
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import jestFetch from 'jest-fetch-mock';
configure({ adapter: new Adapter() });
global.fetch = jestFetch;
我已将Nextjs示例应用修改为几乎相同,但错误并未显示。我不知道差异可能是什么。
更新
我真的复制了样本的所有内容,但它仍然无法正常工作。然后我将我的文件夹从my-app
重新命名为my-appy
,它确实有效。我回去了所有原始代码,包括文件夹名my-app
,但它失败了。我重命名了该文件夹并且它有效。该文件夹如何影响我运行npm test
更新2
下载我的回购的其他人没有问题。从来没有遇到像这样的文件夹名称的问题。
更新3
克隆到/Users/dstein/Repositories/my-app
失败。克隆到/Users/dstein/my-app
有效。克隆到/Users/dstein/Repositories/abc/my-app
有效。不确定什么可能针对失败的一个随机路径,特别是假设重命名my-app
本身的文件夹正在工作。
答案 0 :(得分:2)
我想到了我的计算机上唯一可能有所不同的东西 - 缓存。我试过"test": "NODE_ENV=test BABEL_DISABLE_CACHE=1 jest",
无济于事。然后我在Jest代码库中搜索了cache babel
并找到了https://github.com/facebook/jest/blob/6ee2a14b83393c9e3e3408beb5c4848489f04cf6/docs/Troubleshooting.md。使用--no-cache
运行笑话有效。然后我找到了How to clear Jest cache?。所以我清除了缓存,问题完全消失了。