繁体   English   中英

做任何 JavaScript 测试框架支持 ES 模块

[英]Do Any JavaScript Test Frameworks Support ES Modules

是否有任何测试框架支持使用新的 ES 模块语法的测试? 我有一个 JS 应用程序,它大量使用带有 ES 模块的.mjs文件。 我尝试了 Jest 和 Jasmine,当我尝试为我的应用程序编写运行测试时,它们都会抛出错误。 我需要测试这个文件:

数学.mjs

export function add(a, b) {
  return a + b;
}

截至 2021 年 2 月,这是我所看到的:

您可以将esm包与 Jasmine 一起使用。 虽然不确定 Jest 🤔

数学规范.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

其他支持 ES 模块的测试运行器是:

Japa项目与 ESM 和 Typescript 一起使用,并且在我的设置中完美运行(Node.js 16.x 带有"type": "module".js文件)。 我遇到的唯一问题很容易解决,所以你应该试一试

我尝试了 Vitest ,它就像一个魅力。 我的目标是用 typescript 构建一个可发布的库。 该库是使用Nx w 构建的 monorepo 的一部分,其中 package.json 中的"type": "module"以及我的package.json中的以下tsconfig.json


 "compilerOptions": {
    "module": "ESNext",
    "target": "ES6",
    "moduleResolution": "node"
}

它适用于 0 配置,我尝试测试使用来自 3rd 方包的 CJS 和 ESM 类型导入的功能。

顺便说一句,我真的很喜欢简洁的语法。 此外,vitest 还支持使用 React/Vue 构建的测试组件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM