运行包含CoffeeScript文件导入的Jest测试时出现SyntaxError
SyntaxError when running a Jest test containing import of a CoffeeScript file
我正在编写一个Jest集成测试来测试我的服务器。下面是我的测试:
import { app, port } from '../server' // the other lines are not so important
...
当运行jest
时,会抛出一个错误:
__tests__/graphql.test.js
● Test suite failed to run
<project folder>/node_modules/papercut/lib/papercut.coffee:3
{FileStore, S3Store, TestStore } = require('./store')
^
SyntaxError: Unexpected token =
我在Jest测试中需要server.js
,这个文件需要upload.js
,这个文件需要称为papercut
的节点模块。问题是,它是用CoffeeScript写的,而不是纯JS。
在开始的时候,我有这个错误:Jest:不能找到模块内需要测试的模块(相对路径)。我将coffee
添加到package.json
的jest
配置中,如下所示:
"jest": {
"moduleFileExtensions": ["js", "json", "jsx", "node", "coffee"]
},
但是现在出现了上面描述的错误
我该如何处理?
您需要为Jest设置一个预处理器,因为它不能原生处理coffee脚本。
这个问题之前已经有人回答过了,所以我就不细说了。es6"开箱即用"的原因是,在大多数React代码库中,es6实际上已经提供了jest-babel。
我最终通过做两件事解决了这个问题:
- 为咖啡文件添加预处理器(如其他问题)
- 添加
"preprocessorIgnorePatterns": []
到我的Jest配置Jest忽略node_modules/
中的.coffee文件,如果您不明确地告诉它您也想编译这些文件。
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 使用量角器的当前url单元测试的getTitle
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- AngularJS指令单元测试中未定义的函数
- 一个密码测试程序,如果存在空格,它会提醒用户
- 测试角度解析方法
- Protractor:在Iframe中测试非角度应用程序
- 简单类测试未通过
- 运行包含CoffeeScript文件导入的Jest测试时出现SyntaxError
- 未捕获的SyntaxError:在严格模式下使用const | Travis-ci业力测试与铬抛出