内容
# Repo 测试架构
在进行任何模型或代理推理之前,Repo 测试架构会构建一个确定的审计图。目标是识别存储库原生的、高价值的测试工作,基于工具可以本地检查的事实:项目根目录、框架信号、现有测试、源代码分类、阻止因素和剩余风险。
当前实现支持:
- 通过支持的适配器审计 JavaScript/TypeScript、Python 和 Swift 项目
- 通过相同的共享工件模型审计支持的、有界的 Kotlin/JVM 固定装置
- 通过支持的有界适配器审计传统的 Go 模块和字面意义上的存储库包含的 `go.work` 成员
- 检测多语言项目根目录并报告不支持的生态系统而不会隐藏它们
- 在一次审计中生成完整的存储库分析、发现、排名、计划、执行提示和验证命令
- 按可能测试价值对源代码文件进行分类,并推迟低价值的直接测试
- 从审计图中排名候选者并生成测试计划
- 在不选择模型或生成子代理的情况下,推导出提供者中立的执行、上下文、并行安全性和存储库推理提示
- 分析跨项目边界的保守测试放置发现
- 收集项目级别的覆盖率、候选者数量、框架、命令和适配器使用情况的统计信息
- 提供默认情况下禁用的本地 MCP 诊断、安全内部错误报告 ID、运行时检查和可检查的净化捆绑包,而无需外部报告
- 通过 CLI 命令、本地调用工具和 stdio MCP SDK 服务器公开相同的确定性行为
- 使用黄金快照、模型一致性场景、包检查和跨操作系统 CI 锁定行为
原生测试生成故意被推迟。`generate_selected_test` 返回一个结构化的延迟工件,直到适配器特定的生成策略和修复循环固定装置存在。
Repo 测试架构是一个早期的公共 alpha 版本。将其发现视为证据支持的审查输入,而不是自动更改存储库的指令。
## 安装
需要 Node.js 20 或更高版本。
无需全局安装即可运行 CLI:
```sh
npx --yes repo-test-architect doctor
npx --yes repo-test-architect analyze .
```
或安装 CLI 和 MCP 服务器二进制文件:
```sh
npm install --global repo-test-architect
repo-test-architect doctor
repo-test-architect analyze .
```
将本地 stdio MCP 服务器添加到支持 MCP 的客户端:
```json
{
"mcpServers": {
"repo-test-architect": {
"command": "npx",
"args": [
"--yes",
"repo-test-architect",
"mcp"
]
}
}
}
```
客户端在本地启动服务器。除非客户端或其他配置的工具将存储库源发送到其他地方,否则存储库源保留在机器上。连接的模型接收到以 `analyze_repository` 开头的指令,以进行一般存储库审查。请参阅 [MCP 客户端配置](docs/mcp-client-config.md)和[代理安装路径](docs/agent-install-paths.md),以获取全局安装、本地检查和主机特定指导。
## 快速入门
对于当前存储库的可读审查:
```sh
npx --yes repo-test-architect analyze .
```
`analyze` 检测每个项目根目录,运行每个支持的适配器一次,并推导出审计摘要、主要发现、候选者排名、测试计划、执行提示、项目统计和验证命令。Markdown 保持紧凑;JSON 保存完整的证据包:
```sh
npx --yes repo-test-architect analyze . --format json
npx --yes repo-test-architect analyze . --changed
```
有用的聚焦视图:
| 目标 | 命令 |
| --- | --- |
| 完整的存储库审查 | `repo-test-architect analyze .` |
| 简洁的架构发现 | `repo-test-architect findings-projects .` |
| 可行的跨项目计划 | `repo-test-architect plan-projects .` |
| 原始的可重用项目审计 | `repo-test-architect audit-projects . --format json` |
| 运行时准备情况 | `repo-test-architect doctor` |
运行 `repo-test-architect --help` 以获取简短的命令映射,或运行 `repo-test-architect <command> --help` 以获取选项。[CLI 参考](docs/cli-reference.md) 文档了完整的表面。
对于 MCP 连接的模型,默认情况下等效于 `analyze_repository`。仅当请求要求单个工件或已经提供审计工件时,才使用更窄的工具。
## 当前范围
支持的适配器:
- `javascript`:JavaScript/TypeScript 存储库,带有 Node 测试运行器(包括 TypeScript 执行脚本)、Bun 测试、AVA、Mocha/CommonJS、Vitest、Jest、Playwright、Cypre、Express/Supertest、React 测试库检测和有界的字面浏览器请求到路由证据;请参阅 [alpha 支持矩阵](docs/javascript-typescript-alpha-support.md),了解证据边界和已知空白
- `go`:传统的 `go.mod` 项目和字面意义上的存储库包含的 `go.work` 成员,使用可运行的标准库 `TestXxx`、`FuzzXxx` 或 `ExampleXxx` 测试、包本地文件名、唯一顶级和显式类型接收器方法符号,通过相同包或精确外部包导入(包括点导入)、通用顶级函数和有界的一跳证据、模块本地命令和可选的显式 `GOOS`/`GOARCH` /自定义标签选择;请参阅 [alpha 支持矩阵](docs/go-alpha-support.md),了解支持的边界和阻止因素
- `kotlin`:传统的 Gradle/Maven JVM 模块根目录、设置拥有的 Gradle 聚合和根声明的 Maven 反应堆,带有 Kotlin 和/或 Java 标准源集、依赖资格的直接/导出传递模块证据、JUnit 4/5、`kotlin.test`、有界 Gradle/JUnit 平台 Kotest 常见规范、传统的 Gradle/Spock 功能和通过直接 Maven 依赖或 Gradle `useTestNG()` 的方法级 TestNG;请参阅 [Kotlin/JVM alpha 支持矩阵](docs/kotlin-jvm-alpha-support.md)
- `python`:有界的 Python 包、FastAPI、Django 和 Flask 布局,带有声明性多包/命名空间所有权、配置的 pytest 发现、精确的绝对/相对导入、一跳源依赖证据、静态框架测试客户端路由证据、pytest/unittest、异步和基于属性的扩展、夹具可达性、pip/setuptools、uv、Poetry、Hatch、tox、nox 和覆盖率配置;请参阅 [Python alpha 支持矩阵](docs/python-alpha-support.md)
- `swift`:Swift Package Manager、Xcode 样式和 Bazel/rules_swift 布局、Swift Testing、XCTest、Quick/Nimble、SnapshotTesting、VaporTesting/XCTVapor、反应式框架和通用 Fluent 数据库边界,带有驱动程序特定的限定符;请参阅 [Swift alpha 支持矩阵](docs/swift-alpha-support.md)
项目检测还报告不支持的 Ruby、PHP、Elixir、Rust 和 .NET 根目录,以便客户端可以将“未审计”与“不存在”区分开来。
公共包通过稳定的二进制名称提供审计 CLI、stdio MCP 服务器和确定性的 MCP 调用工具。
## 高级 CLI 和贡献者参考
以下命令公开了聚焦的工件、固定装置、评估、诊断和发布检查,用于高级使用和存储库开发。
<details>
<summary>显示完整的命令和开发参考</summary>
直接运行完整的分析或针对多语言示例:
```powershell
npm run analyze
npm run analyze:json
npm run analyze:example
npm run analyze:example:json
```
检查运行时和诊断准备情况:
```powershell
npm run doctor
npm run doctor:json
```
本地 MCP 诊断默认情况下是禁用的。它们可以显式地定向到 stderr 或有界的本地 JSONL 文件;请参阅 [本地诊断](docs/diagnostics.md)。使用以下命令生成一个干净的、可检查的捆绑包:
```powershell
npm run diagnostic-bundle -- --diagnostics-file ./.repo-test-architect/diagnostics.jsonl --format json
node ./src/cli/index.js diagnostic-bundle --diagnostics-file ./.repo-test-architect/diagnostics.jsonl --format json
```
列出已注册的适配器:
```powershell
npm run adapters
npm run adapters:json
```
检查项目检测标记规则:
```powershell
npm run detect-rules
npm run detect-rules:json
```
检测项目根目录和适配器匹配:
```powershell
npm run detect:example
npm run detect:example:json
npm run detect:kotlin-fixture
npm run detect:kotlin-fixture:json
npm run detect:apple-fixture
npm run detect:apple-fixture:json
npm run audit-projects:example
npm run audit-projects:example:json
npm run audit-projects:changed-since
npm run summarize-projects:example
npm run summarize-projects:example:json
npm run rank-projects:example
npm run rank-projects:example:json
npm run plan-projects:example
npm run plan-projects:example:json
npm run hints-projects:example
npm run hints-projects:example:json
npm run findings-projects:example
npm run findings-projects:example:json
npm run placement-projects:example
npm run placement-projects:example:json
npm run placement-projects:split-example:json
npm run stats-projects:example
npm run stats-projects:example:json
```
对于具有项目意识的自我审计,请使用引号的子树模式排除已检查的固定装置或示例根目录:
```powershell
node ./src/cli/index.js findings-projects . --exclude-project "examples/**"
```
重用已保存的项目审计工件:
```powershell
node ./src/cli/index.js audit-projects ./examples/polyglot-workspace --format json
node ./src/cli/index.js summarize-projects --from-project-audits ./project-audits.json --format json
node ./src/cli/index.js rank-projects --from-project-audits ./project-audits.json --format json
node ./src/cli/index.js plan-projects --from-project-audits ./project-audits.json --format json
node ./src/cli/index.js findings-projects --from-project-audits ./project-audits.json --format json
node ./src/cli/index.js placement-projects --from-project-audits ./project-audits.json --format json
node ./src/cli/index.js stats-projects --from-project-audits ./project-audits.json --format json
```
```powershell
npm run audit:example
npm run audit:kotlin-fixture
```
输出结构化的审计图:
```powershell
npm run audit:example:json
npm run audit:kotlin-fixture:json
```
从审计图中生成一个可行的测试计划:
```powershell
npm run plan:example
npm run plan:example:json
npm run hints:example
npm run hints:example:json
npm run plan:kotlin-fixture
npm run plan:kotlin-fixture:json
npm run plan:item:example
npm run plan:changed
npm run plan:changed-since
```
在不更改计划工件的情况下,从审计图中推导出建议的执行提示:
```powershell
node ./src/cli/index.js hints ./examples/node-vitest-basic --item add-test:src/authService.ts
node ./src/cli/index.js hints-projects ./examples/polyglot-workspace --format json
```
安装的 CLI 或代理主机仍然负责模型选择、预算、权限、上下文加载和子代理生命周期。
通过稳定的目标 ID 解释一个审计目标:
```powershell
npm run explain:example
```
在不生成测试的情况下,对测试候选者进行排名:
```powershell
npm run rank:example
```
分析现有的测试放置情况:
```powershell
npm run placement:example
npm run placement:example:json
npm run placement:from-audit:example
```
使用 MCP 样式的工具界面:
```powershell
npm run mcp:tools
npm run mcp:analyze:example
npm run mcp:adapters
npm run mcp:detect-rules
npm run mcp:detect:example
npm run mcp:audit-projects:example
npm run mcp:summarize-projects:example
npm run mcp:rank-projects:example
npm run mcp:plan-projects:example
npm run mcp:findings-projects:example
npm run mcp:placement-projects:example
npm run mcp:placement-split:example
npm run mcp:stats-projects:example
npm run mcp:audit:example
npm run mcp:audit:kotlin-fixture
npm run mcp:placement:example
npm run mcp:audit:envelope
npm run mcp:stdio
npm run mcp:smoke
```
从现有的审计 JSON 文件中生成计划:
```powershell
npm run plan:from-audit:example
```
运行审计回归测试:
```powershell
npm test
npm run alpha:check
npm run release:check
```
查找并排名用于现实世界适配器验证的活跃公共存储库:
```powershell
npm run validation:repos -- --profile react
npm run validation:repos -- --profile workspace --limit 10
npm run validation:repos -- --profile swift,gradle,maven --format json
```
查找器使用身份验证的 GitHub 存储库搜索,在根目录清单中验证确切的生态系统标记,并使用维护的最新程度、星级、存储库大小、锁定文件、CI 和许可证元数据对候选者进行排名。运行 `npm run validation:repos -- --list-profiles` 以获取可用的配置文件,并运行 `--help` 以获取质量过滤器选项。
检查每个支持的适配器是否具有完整的、固定的强化语料库:
```powershell
npm run corpus:check
npm run corpus:scorecard
npm run corpus:measure -- --case python-asyncer --checkout /path/to/pinned/asyncer
npm run javascript:performance:check
npm run python:performance:check
npm run kotlin:performance:check
npm run swift:performance:check
npm run go:performance:check
```
版本化的 `evals/validation-corpus.json` 清单记录了每个适配器的一个传统库或服务、一个框架密集型应用程序和一个困难的所有权图。每个记录都带有共享的检测、所有权、命令、证据、排名、稳定性性和性能记分卡。所有 15 个当前固定的案例都通过了每个记分卡区域;新的或重新固定的案例在标准化强化审查之前保持“待定”。案例可能带有有界的适配器审计选项,例如显式的 Go 构建目标,以便重复测量保持主机独立。
`corpus:scorecard` 为人类渲染审查合同。它分别报告审查完整性和审查检查的通过率,并为每个区域保留“通过”、“失败”和“待定”可见。使用 `npm run corpus:scorecard -- --format json` 获取确定性的 `validation-scorecard/v1` 视图。这些是验证审查结果,而不是存储库质量评级。
`corpus:measure` 验证检查点的确切固定 Git SHA,运行所选适配器至少三次,拒绝规范审计漂移,并报告原始持续时间、中位数持续时间、证据链接计数和用于更新记分卡的规范审计摘要。
每个适配器性能检查分别运行一个生成的 400 源/200 测试项目,验证其候选者和证据计数,并强制实施广泛的跨平台回归上限。这些综合门控补充了记录的每个存储库语料库分布。
使用 `alpha:check` 获取适配器支持里程碑。`release:check` 还涵盖了打包和安装二进制文件的准备情况。
CI 工作流保留一个稳定的 Linux `pr-gate`:文档更改仅运行聚焦测试更改,正常更改运行 `npm run alpha:check`,分发敏感更改运行 `npm run release:check`。Windows 仅针对运行时和可移植性更改运行;macOS 仅针对 Swift 敏感更改运行。合并到 `master` 会在 Linux 上运行完整的发布关卡,而手动调度在所有三个操作系统上运行完整的发布关卡。
测试包括 `evals/expected` 下的黄金审计和计划快照,由 `evals/fixtures.json` 驱动,以及用于确定性 JSON、可移植路径、证据语义和下游工件协议的共享适配器一致性检查。
刷新有意更改审计行为后的快照:
```powershell
npm run eval:check
npm run eval:summary
npm run eval:test
npm run eval:update
```
检查模型一致性场景锁定字段与确定性工具结果:
```powershell
npm run model-consistency:check
npm run model-consistency:json
npm run model-consistency:json -- --profile local-small
npm run model-consistency:compare -- baseline-summary.json candidate-summary.json
npm run model-consistency:stats
```
Node 20 或更高版本是 CLI 所需的。默认的烟雾检查跨平台可移植:
```powershell
npm run smoke
```
如果 Node 尚未可用,存储库仍然包括 PowerShell 烟雾检查:
```powershell
powershell -ExecutionPolicy Bypass -File ./scripts/smoke.ps1
```
检查发布前检查包内容:
```powershell
npm run pack:check
npm run bin:check
npm run installed-package:check
npm run distribution:check
npm run release:check
```
`distribution:check` 验证打包和 MCP 元数据准备情况。更严格的 `distribution:check:publish` 验证公共 npm 和 MCP 注册表身份在发布前是否对齐。请参阅 [分发](docs/distribution.md)。
形状
```txt
src/
core/
audit-model.ts
plan-execution-hints.js
plan-execution-hints.ts
report.js
report.ts
diagnostics/
diagnostics.js
adapters/
javascript/
audit.js
audit.ts
kotlin/
audit.js
python/
audit.js
swift/
audit.js
cli/
index.js
examples/
node-vitest-basic/
express-supertest/
react-testing-library/
kotlin-junit-basic/
kotlin-gradle-groovy-junit/
kotlin-gradle-module-graph-junit/
kotlin-maven-junit/
kotlin-maven-reactor-junit/
kotlin-maven-wrapper-j/
kotlin-gradle-aggregate-kotest/
kotlin-gradle-spock/
kotlin-maven-testng/
python-pytest-service/
python-uv-pytest/
python-poetry-pytest/
swift-spm-xctest/
swift-spm-swift-testing/
swift-spm-quick-nimble/
swift-spm-custom-paths/
swift-spm-alternate-roots/
swift-bazel-xctest/
swift-xcode-test-plans/
vapor-service-tests/
vapor-mongodb-boundaries/
evals/
expected/
model-consistency/
schemas/
```
支持 JavaScript/TypeScript、Python、Swift、有限的 Kotlin/JVM 模块和有限的 Go 模块作为适配器证明点。Go 支持包括字面意义上的、存储库中包含的 `go.work` 成员和在 [Go Alpha 支持](docs/go-alpha-support.md) 中定义的显式静态构建目标选择。Kotlin/JVM 支持限于传统的 Gradle/Maven 模块和直接声明的聚合图、JUnit、文档中描述的 Kotest 公共规范和 Spock 功能变体,或方法级 TestNG,以及 [Kotlin/JVM Alpha 支持](docs/kotlin-jvm-alpha-support.md) 中定义的标准源集。
重要的运行时表面:
- 命令行接口:`src/cli/index.js`
- MCP 工具定义:`src/mcp/tool-definitions.js`
- 标准输入/输出 MCP SDK 服务器:`src/mcp/stdio.js`
- 本地调用工具:`src/mcp/invoke.js`
- 发布检查:`scripts/check-release-readiness.js`
## 文档
- [贡献](CONTRIBUTING.md)
- [支持](SUPPORT.md)
- [安全策略](SECURITY.md)
- [项目计划](docs/project-plan.md)
- [项目状态](docs/status.md)
- [公开就绪](docs/public-readiness.md)
- [Alpha 就绪](docs/alpha-readiness.md)
- [实际仓库审计报告](docs/real-repo-audit-reports.md)
- [产品定位](docs/product-positioning.md)
- [近期路线图](docs/near-term-roadmap.md)
- [适配器强化计划](docs/adapter-hardening-plan.md)
- [演示脚本](docs/demo-script.md)
- [决策日志](docs/decision-log.md)
- [第二次适配器突击](docs/second-adapter-spike.md)
- [Kotlin/JVM Alpha 支持](docs/kotlin-jvm-alpha-support.md)
- [Go Alpha 支持](docs/go-alpha-support.md)
- [Go 验证搜索报告](docs/go-validation-hunt-report.md)
- [Go HTTP 验证报告](-http-validation-report.md)
- [Go 工作区所有权验证报告](docs/go-ownership-validation-report.md)
- [Go 点导入验证/go-dot-import-validation-report.md [Kotlin/JVM 验证搜索报告](docs/kotlin-jvm-validation-hunt-report.md)
- [适配器合约](docs/adapter)
- [工件合约](docs/artifact-contract.md)
- [命令行接口参考](docs/cli-reference.md)
- [项目检测/project-detection.md)
- [工作流](docs/poly-workflow.md)
- [MCP 工具表面](docs/mcp-tools.md)
- [MCP 客户端配置](docs/mcp-client-config.md)
- [MCP](docs/mcp-deployment.md)
- [本地诊断](iagnostics.md)
- [代理安装路径](docs/agent-install-paths- [发布生命周期](-lifecycle.md)
- [发布检查清单](docs/release-checklist.md)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器