Luk*_*uke 5 javascript node.js node-modules jestjs
我的设置
import)编写的简单测试。package.json我有一个脚本(遵循适用于 Windows 的Jest 文档):"test": "set \"NODE_OPTIONS=--experimental-vm-modules\" && npx jest"npm run test(上面的脚本)我的目标:使用 jest 运行 ESM 测试。
我的尝试:
package.json 包含 "type": "commonjs"test.jsSyntaxError: Cannot use import statement outside a module这是意料之中的,因为测试是作为 commonjs 文件运行的。)package.json 包含 "type": "commonjs"test.mjsNo tests found(Jest 没有找到文件?)package.json 现在有 "type": "module"test.mjs或的测试文件test.jsReferenceError: module is not defined at ...jest.config.js:6:1package.json 包含 "type": "commonjs"test.js但使用 commonjsrequire语法的测试文件(并且没有我想包含的 ESM 模块);请注意,这不是我想要的,只是为了表明测试本身没有任何问题。mor*_*ney 48
以下是我使用 ESM 运行 Jest 并进行测试所采取的步骤。测试中的源文件也是使用 ESM 编写的。
将我的节点版本设置为 14.16.0
安装笑话:
npm i jest -D
Run Code Online (Sandbox Code Playgroud)
添加"type": "module"package.json
更新test脚本package.json:
"scripts": {
"test": "node --experimental-vm-modules ./node_modules/.bin/jest"
}
Run Code Online (Sandbox Code Playgroud)
创建一个jest.config.js包含以下内容的文件:
export default { transform: {} }
Run Code Online (Sandbox Code Playgroud)
至少有一个可以使用默认值找到的测试testMatch(我的在__tests__目录内)
运行测试:
npm test
Run Code Online (Sandbox Code Playgroud)
GitHub 上的magic-comments-loader存储库中有一个更完整的示例。
经过大量摆弄后,这是我成功的设置(重要的部分):
package.json有 "type": "commonjs",
"script": {
"test": "NODE_OPTIONS=--experimental-vm-modules jest"
}
Run Code Online (Sandbox Code Playgroud)
jest.config.mjs(是的,esModule)export default {
moduleFileExtensions: [
"mjs",
// must include "js" to pass validation https://github.com/facebook/jest/issues/12116
"js",
],
testRegex: `test\.mjs$`,
};
Run Code Online (Sandbox Code Playgroud)
必须包含的内容"js"是时代模块的历史遗迹,其中显然是 .js 文件。关注https://github.com/facebook/jest/issues/12116进行更新。
对于我来说,只需按如下方式设置脚本“test”即可:
“测试”:“跨环境 NODE_OPTIONS=--experimental-vm-modules npx 玩笑”
是的,别忘了 ->npm i cross-env jest
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |