# @alinea/suite 中文文档

规范地址：https://npmcn.com/package/%40alinea/suite/

版本：0\.6\.3
npm 元数据更新时间：2025-06-12T12:57:15.857Z
中文译文更新时间：2026-11-05T22:18:02.873Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40alinea/suite
原文对照：https://npmcn.com/package/%40alinea/suite/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：27.1 kB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-08-29T11:08:00.176Z
- 最新版本发布：2025-06-12T12:57:15.633Z
- 近 30 天下载量：13129（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 0 个）

## 中文简介

[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)

## 安装

```sh
npm install @alinea/suite
```

也可以使用：`pnpm add @alinea/suite`、`yarn add @alinea/suite`、`bun add @alinea/suite`

## README

# 套间

[![NPM Version](https://img.shields.io/npm/v/@alinea/suite)](https://www.npmjs.com/package/@alinea/suite) [![JSR](https://jsr.io/badges/@alinea/suite)](https://jsr.io/@alinea/suite)

说明在Node.js、Deno和Bun的本地试验跑道上进行的试验.

## 实例

```ts
// example.test.js
import {suite} from '@alinea/suite'

const test = suite(import.meta)

test('is', () => {
  test.is(1, 1)
})

test('deep equal', () => {
  test.equal({a: 1}, {a: 1})
})

test('async', async () => {
  await new Promise(resolve => setTimeout(resolve, 100))
  test.ok(true)
})

test('throws', () => {
  test.throws(() => {
    throw new Error('test')
  }, 'test')
})

test.skip('skip', () => {
  test.ok(false)
})
```

运行方式 :

-   `node --test`
-   `bun test`
-   `deno test`

## api 密码

```ts
/** Define a test suite */
export function suite(meta: ImportMeta): (test: DefineTest) => void
export function suite(meta: ImportMeta, define: (test: DefineTest) => void): void

/** Describe a test */
export type Describe =
  (name: string, run: () => void | Promise<void>): void

/** Define a test suite */
export interface DefineTest extends Describe {
  /** Skip the test */
  skip: Describe
  /** Only run this test */
  only: Describe
  /** Assert that actual is a truthy value */
  ok(actual: any): void
  /** Assert that actual strictly equals (===) the expects value */
  is(actual: any, expects: any): void
  /** Assert that actual is deeply equal to the expects value */
  equal(actual: any, expects: any): void
  /** Assert that the fn function throws an Error */
  throws(fn: () => void, messageIncludes?: string): void
  /** Assert inverse */
  not: {
    /** Assert that actual is a falsy value */
    ok(actual: any): void
    /** Assert that actual does not strictly equal (===) the expects value */
    is(actual: any, expects: any): void
    /** Assert that actual is not deeply equal to the expects value */
    equal(actual: any, expects: any): void
  }
}
```

## 常见问题

### 如何安装 @alinea/suite？

在项目目录运行 npm install @alinea/suite，或使用 pnpm add / yarn add / bun add。

### @alinea/suite 支持 TypeScript 吗？

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

### @alinea/suite 支持 ESM 还是 CommonJS？

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

### @alinea/suite 可以商用吗？

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

### @alinea/suite 的下载量有多少？

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

### @alinea/suite 还在维护吗？

最新版本 0\.6\.3 发布于 2025/06/12（1\.4 年前）；至今共发布 6 个版本，其中过去 12 个月发布了 0 个；首次发布于 2024/08/29。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

