@endo/ses-ava

中文文档
1.4.2发布于 2026/06/12Apache-2.0ES Module近 30 天下载 1.6万

虚拟化AVA的测试在SES下效果更好.

中文使用文档

@endo/ses-ava

赛-阿瓦 包装 AVA test 函数并初始化 SES-shim 选项 适合调试测试。 这包括控制台的日志错误

  • 上个回合的深叠
  • 未编辑的堆栈跟踪
  • 未编辑错误消息

要使用此模块, 在您的 AVA 测试文件中, 替换

import 'ses'; // or however you initialize the SES-shim
import test from 'ava';

与

import test from '@endo/ses-ava/prepare-endo.js';

添加

  "devDependencies": {
    // ...
    "@endo/ses-ava": "...", // for the current version of @endo/ses-ava
    // ...
  },

具体到"依赖". @endo/ses-ava 本身依赖于 AVA 作为 正常的依赖,所以您包括 @ endo/ses- ava 常规 依赖,捆绑者可能会把你的代码 与所有的AVA.

SES-AVA与尼尼微押韵.

支持多种配置

SES-AVA还提供了一个命令行工具, ses-ava,可以运行 AVA 与 单个命令中的多个配置, 截取标记以过滤 用于有趣的配置. 这个 ses-ava 命令消耗 "ava" 和(新设) "sesAvaConfigs" 属性 内 package.json 来发现和命名支持的配置 参考文献 --only 财务报告和审定财务报表 --exclude 备选案文(和各自的 -o 财务报告和审定财务报表 -x 缩写) "ava" 配置为 default如果有的话.

在适当的配置下,包可以运行许多相同的测试 有无初始化的远藤环境. 这对远藤有用 硬化模块: 使用模块 harden 改为 捍卫其接口的完整性,视 关于是否与HardenedJS的 lockdown。 。 。 .

对于不论环境如何可能使用的测试,SES-AVA提供 a 一个 @endo/ses-ava/test.js 模块. 它输出 test 从 ava 默认. 但随着 node 条件 ses-ava:endo,它输出一个包裹 test 无法校正错误, 因此测试会看到原始错误消息 否则会被SES的Assert机械所校正.

import test from '@endo/ses-ava/test.js';

SES-AVA 然后允许不同的AVA配置设置不同的 环境. 例如 lockdown 配置可能看起来像 :

export default {
  require: ['@endo/ses-ava/prepare-endo-config.js'],
  nodeArguments: ['-C', 'ses-ava:endo']
};

这依赖于SES-AVA来初始化一个 远藤环境,包括SES shims和意外发送 shim,以及 登记包裹的 SES-AVA test 声明器,可以解析错误 assert shim 从SES 生成的消息. 如果测试不导入 @endo/ses-ava/test.js,则需要 @endo/ses-ava/prepare-endo-config.js 确保环境充分 已初始化. 在远藤寄存器的根部,看看 ava-*.config.mjs 模块 例如配置.

然后,进入 package.json我们可以使用 ses-ava 改为 ava。 。 。 .

{
  "scripts": {
    "test": "ses-ava",
    "test:c8": "c8 ${C8_OPTIONS:-} ses-ava"
  },
  "avaConfigs": {
    "lockdown": "test/_ava-lockdown.config.mjs",
    "unsafe": "test/_ava-lockdown-unsafe.config.mjs",
  }
}

有了这个配置, ses-ava ...args --exclude lockdown 财务报告和审定财务报表 ses-ava ...args --only unsafe {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}会把那些.. unsafe 配置 . 使用 ses-ava 下级 c8 允许所有配置覆盖已使用的代码.

兼容性

如果你已经使用 @endo/ses-ava 这样做

import 'ses'; // or however you initialize the SES-shim
import rawTest from 'ava';
import { wrapTest } from '@endo/ses-ava';

const test = wrapTest(rawTest);

密码会继续有效 但应该升级到上面 可能的话,模式.

版本与发布记录

@endo/ses-ava 共发布 66 个版本,首次发布于 2021/06/02;过去 12 个月发布了 3 个版本。

版本发布日期距今
1.4.2latest2026/06/125 个月前
1.4.12026/04/176 个月前
1.4.02026/02/278 个月前
1.3.22025/07/121.3 年前
1.3.12025/06/181.4 年前
1.3.02025/06/031.4 年前

关于 @endo/ses-ava 的常见问题

@endo/ses-ava 是什么?

虚拟化AVA的测试在SES下效果更好.

如何安装 @endo/ses-ava?

在项目目录运行 npm install @endo/ses-ava,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ses-ava,可以用 npx ses-ava 直接运行。

@endo/ses-ava 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/endo__ses-ava 是否存在。

@endo/ses-ava 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@endo/ses-ava 可以商用吗?

@endo/ses-ava 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@endo/ses-ava 的下载量有多少?

根据 npm 官方下载统计,@endo/ses-ava 在 2026/10/14 – 2026/11/12 这 30 天内被下载 16,434 次,日均约 548 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@endo/ses-ava 还在维护吗?

最新版本 1.4.2 发布于 2026/06/12(5 个月前);至今共发布 66 个版本,其中过去 12 个月发布了 3 个;首次发布于 2021/06/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。