记者
敷布 go test 输出为最小的JSON摘要。为LLM代理构建,这些代理需要测试结果,而无需在数千个通过的测试中燃烧上下文。
一个5000行的详细测试运行将变成大约10行JSON,其中包含代理需要执行的所有操作:通过/失败计数、失败的测试名称、包、错误输出和源位置。
输出
{
"passed": 373,
"failed": 1,
"failures": [
{
"test": "TestBucketEndpointURL/empty_endpoint_returns_empty_string",
"package": "github.com/hegner123/modulacms/internal/config",
"output": "config_test.go:102: BucketEndpointURL() = \"\", want \"s\"",
"location": "config_test.go:102"
}
]
}当所有测试通过时, failures 是一个空数组。
入门指南
go build -o reporter .MCP服务器(默认)
注册为MCP工具。代理商发送原始 go test -json 输出为 input 参数并返回结构化JSON。
claude mcp add --transport stdio reporter -- /path/to/reporter命令行界面
go test -json ./... | ./reporter
go test -v ./... | ./reporterStdin自动检测:管道输入运行CLI模式,终端运行MCP服务器。 --cli 标志强制CLI模式。
为什么
运行测试的LLM代理会返回一堵文本墙。将其传递到上下文窗口会浪费代理无法处理的信息(通过测试)上的令牌。这个工具把它归结为重要的事情:
- 令牌压缩:典型试运行时减少250:1。5000行成为计数
"passed": 5725再加上具有可操作细节的故障。 - 结构化输出:代理可以直接解析JSON,而不是扫描文本
--- FAIL模式。 - 震源位置:
file.go:NNN提取并浮出水面,以便代理可以在不搜索的情况下导航到故障。
输入格式
JSON模式 (go test -json):推荐。每一行都是一个带有测试名称和包的标记事件,因此即使在高度并行和多行日志输出的情况下,输出归因也是可靠的。
详细文本模式 (go test -v):尽最大努力回退。适用于典型输出,但在并行运行测试并产生多行日志输出时,可能会错误地分配行。文本格式从来不是为机器解析而设计的。
从第一个非空行自动检测到:开始于 { 表示JSON,否则表示冗长的文本。
平台支持
- macOS
- Linux
不支持Windows。
