@ alienplatform/ 测试
异形应用测试框架.
安装
npm install --save-dev @alienplatform/testing
本地对云
此软件包有两种部署模式:
- 本地模式使用
alien dev - 云模式使用平台 API
这种分裂是故意的。 本地模式以已运出的模式为中心 alien CLI 二进制而不是要求用户发现下级管理器二进制.
本地模式
本地模式为默认 :
import { afterAll, beforeAll, describe, expect, it } from "vitest"
import { deploy, type Deployment } from "@alienplatform/testing"
describe("My App", () => {
let deployment: Deployment
beforeAll(async () => {
deployment = await deploy({ app: "./my-app" })
}, 300_000)
afterAll(async () => {
await deployment?.destroy()
})
it("responds to requests", async () => {
const response = await fetch(`${deployment.url}/api/hello`)
expect(response.status).toBe(200)
})
})
在头罩下,包裹:
- 发现
alien二进制 - 产卵
alien dev --status-file ... - 等待状态文件报告准备状态
- 从该文件读取公共 URL并命令 URL
本地机器合同是 DevStatus JSON 撰写人: alien dev,而不是终端输出.
云模式
云模式瞄准真正的基础设施:
const deployment = await deploy({
app: "./my-app",
platform: "aws",
})
支持的云平台:
awsgcpazure
云模式需要 ALIEN_API_KEY。 。 。 .
API 密码
interface DeployOptions {
app: string
platform?: "local" | "aws" | "gcp" | "azure"
config?: string
environmentVariables?: EnvironmentVariable[]
verbose?: boolean
}
回来的 Deployment 支持:
deployment.urldeployment.invokeCommand(name, params, { target? })- 可选target以 id 键向特定资源的路径deployment.setExternalSecret(vault, key, value)deployment.upgrade(options)用于云模式deployment.destroy()
配置
| 变量 | 说明 | 默认 |
|---|---|---|
ALIEN_API_KEY | 云模式的 API 平台密钥 | —— 说 |
ALIEN_API_URL | 平台 API 基础 URL | https://api.alien.dev |
ALIEN_CLI_PATH | 路径 alien 二进制 | 自动检测 |
VERBOSE | 显示详细的子进程日志 | false |
页:1
- 本地模式仅需要
alien二进制 - 云模式需求
ALIEN_API_KEY - repo- 内部低级测试仍然可以直接使用独立的管理器帮助; 这个包是更高级的产品显示层