@dagger.io/mocha

中文文档
0.1.0发布于 2026/04/21Apache-2.0TypeScriptESM + CJS近 30 天下载 5.3万

MochaJS OpenTelemetry auto instrumentation

原始使用文档
文档目录6 节
  1. Requirements
  2. Install
  3. Usage
  4. What gets instrumented
  5. Developer guide
  6. License

@dagger.io/mocha

Auto-instrumentation for Mocha tests with OpenTelemetry. It creates spans for:

  • each suite that runs
  • each test that runs (including pass/fail/pending status and duration)

Telemetry bootstrap, exporter, and context management are handled by @dagger.io/telemetry. This package only hooks Mocha and emits tracing data.

Requirements

  • Node.js 20+
  • Mocha 9–11 (peer dependency)

Install

  • Using npm:
    • npm install --save-dev @dagger.io/mocha
  • Using yarn:
    • yarn add -D @dagger.io/mocha
  • Using pnpm:
    • pnpm add -D @dagger.io/mocha

The telemetry client (@dagger.io/telemetry) is a direct dependency and will be installed automatically.

Usage

This library is designed to work by preloading a register file via NODE_OPTIONS.

  • CommonJS (Node’s --require):
    • NODE_OPTIONS="$NODE_OPTIONS --require @dagger.io/mocha/register" npx mocha
  • ESM (Node’s --import):
    • NODE_OPTIONS="$NODE_OPTIONS --import @dagger.io/mocha/register" npx mocha

You can also add it to your package.json test script:

  • CommonJS:
    • "test": "NODE_OPTIONS='--require @dagger.io/mocha/register' mocha"
  • ESM:
    • "test": "NODE_OPTIONS='--import @dagger.io/mocha/register' mocha"

This will:

  • start the telemetry SDK before Mocha runs
  • create spans for suites/tests as Mocha emits events
  • attempt to gracefully shutdown and flush telemetry when the run ends

What gets instrumented

Suite and test are instrumented.

  • Suite span: mocha.suite
    • Status is set to ERROR if a test or a children suite is failed.
  • Test span: mocha.test
    • Status is set to:
      • OK for passed tests
      • ERROR for failed tests (with recorded exception)

All spans are emitted under tracer name dagger.io/mocha.

Developer guide

  1. Build:
  • bun install
  • bun run build
  1. Run the sample test:
  • cd tests/hello_world/register_esm
  • npm install (installs local @dagger.io/mocha via file dependency)
  • Run the script or mocha inside a dagger session:
    • NODE_OPTIONS="$NODE_OPTIONS --import @dagger.io/mocha/register" dagger run npx mocha

You should see your spans appears in the TUI and on dagger cloud.

License

Apache-2.0

版本与发布记录

@dagger.io/mocha 共发布 1 个版本,首次发布于 2026/04/21;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.0latest2026/04/216 个月前

关于 @dagger.io/mocha 的常见问题

@dagger.io/mocha 是什么?

MochaJS OpenTelemetry auto instrumentation

如何安装 @dagger.io/mocha?

在项目目录运行 npm install @dagger.io/mocha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:mocha(>=9 <12)、typescript(^5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@dagger.io/mocha 支持 TypeScript 吗?

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

@dagger.io/mocha 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dagger.io/mocha 可以商用吗?

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

@dagger.io/mocha 的下载量有多少?

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

@dagger.io/mocha 还在维护吗?

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