@argos-ci/vitest

中文文档
0.9.0发布于 2026/10/21MITTypeScriptES Module构建来源已验证近 30 天下载 31.3万

Vester SDK用于与Argos进行视觉测试.

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 自动命名
  4. 抓图
  5. 链接

Argos

团队和AI代理的开源视觉测试平台.

官方Argos Vitest 集成系统

npm version npm dm npm dt

直接取自您的 Argos 截图 Vest 浏览器测试。 。 。 .

访问 测试 SDK 文档 向导 API 等.

安装

安装软件包 :

npm install --save-dev @argos-ci/vitest

argosSnapshot 运行在任何Vitest测试中——浏览器或节点,不需要其他的.

用来捕捉截图 argosScreenshot测试 Vest 浏览器模式 与 剧作家提供商 并安装 以下对等关系:

npm install --save-dev vitest @vitest/browser @vitest/browser-playwright playwright

使用量

在您的 Vitest 配置中注册插件 :

// vitest.config.ts
import { defineConfig } from "vitest/config";
import { playwright } from "@vitest/browser-playwright";
import { argosVitestPlugin } from "@argos-ci/vitest/plugin";

export default defineConfig({
  plugins: [
    argosVitestPlugin({
      // Upload the screenshots to Argos at the end of the run.
      uploadToArgos: process.env.CI === "true",
    }),
  ],
  test: {
    browser: {
      enabled: true,
      headless: true,
      provider: playwright(),
      instances: [{ browser: "chromium" }],
    },
  },
});

然后取取浏览器测试的截图 :

import { test } from "vitest";
import { render } from "vitest-browser-react";
import { argosScreenshot } from "@argos-ci/vitest";
import { Button } from "./Button";

test("Button", async () => {
  render(<Button>Click me</Button>);
  await argosScreenshot("button");
});

自动命名

此名可选. 如果省略,阿尔戈斯从目前的测试中得出一个, 模仿 虚拟快照数个未命名 在同一测试中捕获到一个增量计数器,所以它们保持独特性:

test("Button", async () => {
  render(<Button>Click me</Button>);
  await argosScreenshot(); // -> "src/Button.test.tsx > Button 1"
  await argosScreenshot(); // -> "src/Button.test.tsx > Button 2"
});

不像Vitest——它保留每个文件 .snap,所以它的键只需要 文件内独有的——Argos names are 全球 整个建筑。 这个 因此生成的名称包括测试文件路径, 所以两个测试是相同的 不同文件中的标题从不碰撞.

抓图

argosSnapshot 抓取任何价值的快照——而不仅仅是截图——和 上传到 Argos 到 diff 横跨建筑,模仿 虚拟快照不同 argosScreenshot, (中文(简体) ), 它不需要浏览器并在其中工作 两者 浏览器和节点测试.

值先出;名可选. 关闭它自动命名快照 从当前测试( 类似于上面的截图), 或通过 options.name 设置它 明确:

import { test } from "vitest";
import { argosSnapshot } from "@argos-ci/vitest";

test("API response", async () => {
  const user = await fetchUser();
  // Objects are serialized with `@vitest/pretty-format`, strings are written
  // verbatim.
  await argosSnapshot(user); // -> "src/user.test.ts > API response 1"
  await argosSnapshot(user, { name: "user" }); // explicit name
});

使用 extension 选项来控制Argos如何制作和播放快照, 财务报告和审定财务报表 tag 添加标签 :

await argosSnapshot(JSON.stringify(config, null, 2), {
  name: "config",
  extension: ".json",
  tag: "config",
});

截图和快照都写给 ./snapshots 目录 默认( 通过插件可配置) root 选项),并由记者上传 何时 uploadToArgos 已启用.

版本与发布记录

@argos-ci/vitest 共发布 22 个版本,首次发布于 2026/07/10;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.0latest2026/10/2117 天前
0.8.02026/10/041 个月前
0.7.12026/09/301 个月前
0.7.02026/09/131 个月前
0.6.12026/09/121 个月前
0.6.02026/09/052 个月前

其他发布通道:canary → 0.4.5-canary-20260811115807.6.sha-15ba429。

关于 @argos-ci/vitest 的常见问题

@argos-ci/vitest 是什么?

Vester SDK用于与Argos进行视觉测试.

如何安装 @argos-ci/vitest?

在项目目录运行 npm install @argos-ci/vitest,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:vitest(>=4)、playwright(>=1)、@vitest/browser(>=4)、@vitest/browser-playwright(>=4)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@argos-ci/vitest 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@argos-ci/vitest 支持 ESM 还是 CommonJS?

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

@argos-ci/vitest 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@argos-ci/vitest 可以商用吗?

@argos-ci/vitest 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@argos-ci/vitest 的下载量有多少?

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

@argos-ci/vitest 还在维护吗?

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