test(e2e): add frontend smoke coverage
This commit is contained in:
@@ -44,6 +44,7 @@ npm run dev
|
||||
npm run lint
|
||||
npm test
|
||||
npm run test:coverage
|
||||
npm run test:e2e
|
||||
npm run build
|
||||
npm run start
|
||||
docker build -t tjwater-frontend:local .
|
||||
@@ -52,6 +53,7 @@ docker build -t tjwater-frontend:local .
|
||||
- `npm run lint`:运行 ESLint。
|
||||
- `npm test`:运行 Jest。
|
||||
- `npm run test:coverage`:生成测试覆盖率。
|
||||
- `npm run test:e2e`:启动本地 Next.js 与 Playwright Chromium 烟测。
|
||||
- `npm run build`:生成生产构建。
|
||||
- `npm run start`:启动生产模式服务。
|
||||
|
||||
@@ -86,6 +88,36 @@ npm run build
|
||||
|
||||
Gitea 包工作流位于 `.gitea/workflows/package.yml`,通常由 tag 触发构建和推送镜像。
|
||||
|
||||
### Playwright E2E
|
||||
|
||||
首次运行先安装 Chromium:
|
||||
|
||||
```bash
|
||||
npm run e2e:install
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
本地测试会自动构建生产版本并启动隔离的 `http://127.0.0.1:3100`,生成仅用于测试的 NextAuth
|
||||
会话,并模拟后端 API,因此不要求启动 Keycloak、Server 或 Agent。失败时可通过
|
||||
`npm run test:e2e:report` 查看 HTML 报告,交互调试可使用
|
||||
`npm run test:e2e:ui` 或 `npm run test:e2e:debug`。
|
||||
|
||||
在不能访问 Playwright CDN 的内网环境,可设置
|
||||
`E2E_CHROMIUM_PATH=/absolute/path/to/chrome` 复用预装的 Chromium/Chrome。
|
||||
|
||||
若要对已部署环境运行测试,请传入环境地址和预先保存的管理员 Playwright 登录状态:
|
||||
|
||||
```bash
|
||||
E2E_BASE_URL=https://example.test \
|
||||
E2E_STORAGE_STATE=/absolute/path/to/storage-state.json \
|
||||
E2E_USE_REAL_SERVICES=true \
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
`E2E_BASE_URL` 会关闭本地开发服务器;`E2E_STORAGE_STATE` 避免在仓库中保存账号或
|
||||
会话;`E2E_USE_REAL_SERVICES=true` 会关闭 API 模拟。Gitea 的
|
||||
`.gitea/workflows/e2e.yml` 在分支推送和 PR 中运行同一组 Chromium 测试。
|
||||
|
||||
## 安全规则
|
||||
|
||||
不要提交 `.env`、`.next/`、`node_modules/`、本地缓存、私有地图/API token、客户数据或部署密钥。CI/CD 凭据应放在 Gitea secrets 中。
|
||||
|
||||
Reference in New Issue
Block a user