@alinea/suite

中文文档
0.6.3发布于 2025/06/12MITTypeScriptES Module零依赖近 30 天下载 1.3万

NPM Version JSR

原始使用文档

suite

NPM Version JSR

Describe tests that run in the native test runners of Node.js, Deno and Bun.

example

// 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)
})

Run with:

  • node --test
  • bun test
  • deno test

api

/** 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 共发布 6 个版本,首次发布于 2024/08/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.6.3latest2025/06/121.4 年前
0.6.22025/02/201.7 年前
0.6.12025/02/191.7 年前
0.6.02025/02/191.7 年前
0.5.02025/01/211.8 年前
0.4.02024/08/292 年前

关于 @alinea/suite 的常见问题

如何安装 @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 和提交记录判断。