有哪些测试框架支持使用新的ES模块语法进行测试?我有一个JS应用程序,其中大量使用了具有ES模块的.mjs
文件。我尝试过Jest和Jasmine,但在尝试为我的应用程序编写运行测试时,两者都会抛出错误。我需要测试这个文件:
math.mjs
export function add(a, b) {
return a + b;
}
有哪些测试框架支持使用新的ES模块语法进行测试?我有一个JS应用程序,其中大量使用了具有ES模块的.mjs
文件。我尝试过Jest和Jasmine,但在尝试为我的应用程序编写运行测试时,两者都会抛出错误。我需要测试这个文件:
math.mjs
export function add(a, b) {
return a + b;
}
.mocharc.js
,.mocharc.cjs
,.mocharc.json
),它会将Mocha放入CommonJS模式,从而破坏所有的import
语句。因此,如果您没有任何配置,或者想要通过命令行参数执行所有配置,则可以与ESM一起使用。 - machineghost我尝试了Vitest,它非常好用。我的目标是使用typescript构建可发布的库。该库是monorepo的一部分,使用Nx构建,并在package.json
中设置了"type": "module"
,在我的tsconfig.json
文件中添加了以下内容:
"compilerOptions": {
"module": "ESNext",
"target": "ES6",
"moduleResolution": "node"
}
它可以在0配置的情况下工作,我尝试测试使用第三方包中的CJS和ESM类型导入的函数。
顺便说一下,我真的很喜欢这种简洁的语法。此外,vitest还支持测试使用React/Vue构建的组件。
esm
包与Jasmine一起使用。不确定Jest是否支持。
math.spec.js
import { add } from './math.mjs';
describe('Add', () => {
it('should add 3 and 2', () => {
expect(add(3,2)).toBe(5);
});
});
$ yarn global add jasmine esm
$ jasmine --require=esm
Randomized with seed 44366
Started
.
1 spec, 0 failures
Finished in 0.004 seconds
esm
只是在模块加载时进行了一些黑科技,它并没有真正转换任何东西... 对吗? - Capi Etheriel