name: cli-e2e-test-harness description: 为CLI应用程序设置端到端测试框架,包含进程生成和断言功能。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
CLI端到端测试框架
为CLI应用程序设置端到端测试框架。
生成的模式
import { spawn, SpawnOptions } from 'child_process';
interface CLIResult {
stdout: string;
stderr: string;
exitCode: number | null;
}
export async function runCLI(args: string[], options?: SpawnOptions): Promise<CLIResult> {
return new Promise((resolve) => {
const proc = spawn('node', ['./dist/index.js', ...args], {
env: { ...process.env, NO_COLOR: '1' },
...options,
});
let stdout = '';
let stderr = '';
proc.stdout?.on('data', (data) => { stdout += data; });
proc.stderr?.on('data', (data) => { stderr += data; });
proc.on('close', (exitCode) => {
resolve({ stdout, stderr, exitCode });
});
});
}
export function expectOutput(result: CLIResult) {
return {
toContain: (text: string) => expect(result.stdout).toContain(text),
toMatchSnapshot: () => expect(result.stdout).toMatchSnapshot(),
toExitWith: (code: number) => expect(result.exitCode).toBe(code),
};
}
目标流程
- cli单元集成测试
- mcp服务器测试套件