我正在尝试分析使用gocheck测试框架的golang测试套件。
我正在运行以下命令以使用性能分析启动测试:
go test -c -o integration.test -cpuprofile cpu.prof -blockprofile block.prof
./integration.test -test.cpuprofile cpu.prof -test.blockprofile block.prof
测试套件正常运行,并生成两个预期文件。总测试执行时间约为50分钟。问题在于文件的内容。
如果我使用go tool pprof
或go-torch创建报告,则配置文件似乎只包含几秒钟的数据,而不是整个测试运行(50分钟)。
如果我查看测试运行的标准输出,我注意到一些测试比其他测试慢得多,运行时间为50秒,但这些慢速测试甚至没有出现在配置文件数据中。
我相信某些事情导致pprof写出不正确的数据,但我不确定这可能是什么。我唯一的猜测是它与gocheck
使用panic()
来运行每个测试和测试夹具有关。
此profile1.zip包含:测试二进制文件,配置文件以及来自它们的框架图报告。