2

我正在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改为 just 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-appto重命名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自身的文件夹是有效的。

4

1 回答 1

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说它起作用了。然后我发现如何清除 Jest 缓存?. 所以我清除了缓存,问题完全消失了。

在https://github.com/facebook/jest/issues/5796提交了可能的错误或文档问题

于 2018-03-14T20:12:24.643 回答