# @appsemble/e2e 中文文档

规范地址：https://npmcn.com/package/%40appsemble/e2e/

版本：0\.40\.9
npm 元数据更新时间：2026-10-29T22:57:32.778Z
中文译文更新时间：2026-11-06T12:32:27.453Z
软件包许可：LGPL-3\.0-only

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

原始 npm 页面：https://www.npmjs.com/package/%40appsemble/e2e
原文对照：https://npmcn.com/package/%40appsemble/e2e/?lang=original
项目主页：https://appsemble.app/
源码仓库：https://gitlab.com/appsemble/appsemble

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

- 包体积（解压后）：183 kB，110 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：7 个
- 首次发布：2025-06-11T15:48:53.608Z
- 最新版本发布：2026-10-29T22:57:32.475Z
- 近 30 天下载量：5673（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：117（近 12 个月 62 个）

## 中文简介

用于在现有环境中测试Appsemble应用程序的端到端测试.

## 安装

```sh
npm install @appsemble/e2e
```

也可以使用：`pnpm add @appsemble/e2e`、`yarn add @appsemble/e2e`、`bun add @appsemble/e2e`

## README

# ![](https://gitlab.com/appsemble/appsemble/-/raw/0.40.9/config/assets/logo.svg) 应用端2 结束测试

> 在 Appsemble 环境中运行 2 端测试,并提供 Appsemble 固定装置

[![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.40.9/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.40.9) [![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io/)

## 目录

-   [如何安装](https://npmcn.com/package/%40appsemble/e2e/#readme-how-to-install)
-   [使用量](https://npmcn.com/package/%40appsemble/e2e/#readme-usage)
-   [类似端到端测试](https://npmcn.com/package/%40appsemble/e2e/#readme-appsemble-end-to-end-tests)
-   [认证](https://npmcn.com/package/%40appsemble/e2e/#readme-authentication)
-   [捐款](https://npmcn.com/package/%40appsemble/e2e/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40appsemble/e2e/#readme-license)

## 如何安装

您可以在工程的根部运行以下设备来安装软件包 :

```sh
npm install @appsemble/e2e
```

## 使用量

在测试中使用固定装置, 您可以导入 `expect` 或者说 `test` 在文件的顶端.

这些固定装置可以通过在测试申报中加以说明而添加到任何测试中. 火柴不会 需要手动添加.

```ts
import { expect, test } from '@appsemble/e2e';

test('should navigate to app', async ({ visitApp }) => {
  await visitApp('Example app');
  await expect(page.getByText('Example app')).toBeVisible();
});
```

## 发展

这个包依赖于Appsemble monorepo中的其他包. 保证所有的测试运行 通常,到每个 Appsemble 依赖并运行以下命令:

```sh
npm run prepack
```

## 类似端到端测试

要运行结束测试, 运行 :

```sh
npm run e2e
```

测试使用 [剧作家](https://playwright.dev/)。 。 。 .

每次测试后,一个视频将被保存在 `packages/e2e/test-results/{name-test}` 目录 进一步检查.

在对失败的工作进行第一次重试时,其追踪会被上传到同一个目录. 这个追踪可以 或可以上传到 [在线微量查看器](https://trace.playwright.dev/)。这显示你一步一步地发生了什么 在测试期间, 仿佛您运行它 `ui mode`。 。 。 .

结束测试使用以下环境变量:

-   `CI` 测试是否在CI中进行.
-   `CI_MERGE_REQUEST_IID` ——合并请求的ID如果存在.
-   `APPSEMBLE_REVIEW_DOMAIN` ——评论可应用域名来使用.
-   `APPSEMBLE_STAGING_DOMAIN` ——中导可调用域名.

检查 `baseURL` 设置 `playwright.config.ts` 查看环境变量的文件 被使用.

## 认证

一些固定装置使用 Playwright 调用 Appsemble API `request` 对象。 估计是工人 已登录,并在 `request` 之前的固定状态。 这看起来像 因此:

```ts
export const test = base.extend<object>({
  async request({}, use) {
    const newRequest = await request.newContext({
      extraHTTPHeaders: {
        Authorization: `Bearer ${accessToken}`,
      },
    });
    await use(newRequest);
    await newRequest.dispose();
  },
});
```

## 资源生命周期跟踪

使用 `createTestResource` 跟踪并自动删除 默认测试.

设定 `trackBrowserResources` 改为 `true` 还跟踪浏览器创建的资源 `POST` 请:

```ts
test.use({ trackBrowserResources: true });
```

设定 `autoCleanupResources` 改为 `false` 在测试后保存所有跟踪资源。 这可能是 用于检查失败测试所创建的资源.

```ts
test.use({ autoCleanupResources: false });
```

> **说明:** 只有浏览器创建的资源 `POST` 请求和资源 `createTestResource` 被跟踪。 使用其他方法如 Webhooks 创建的资源无法获得 跟踪.

## 捐款

在写端到端测试时,请查看 [最佳做法](https://npmcn.com/package/CONTRIBUTING.md#best-practices) 帮助你写固体测试.

## 许可证

[LGPL-3.0 仅限](https://gitlab.com/appsemble/appsemble/-/blob/0.40.9/LICENSE.md) © [应用](https://appsemble.com/)

## 常见问题

### @appsemble/e2e 是什么？

用于在现有环境中测试Appsemble应用程序的端到端测试\.

### 如何安装 @appsemble/e2e？

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

### @appsemble/e2e 支持 TypeScript 吗？

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

### @appsemble/e2e 支持 ESM 还是 CommonJS？

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

### @appsemble/e2e 需要什么版本的 Node\.js？

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

### @appsemble/e2e 可以商用吗？

@appsemble/e2e 使用 LGPL-3\.0-only 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @appsemble/e2e 的下载量有多少？

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

### @appsemble/e2e 还在维护吗？

最新版本 0\.40\.9 发布于 2026/10/30（8 天前）；至今共发布 117 个版本，其中过去 12 个月发布了 62 个；首次发布于 2025/06/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

