问题描述
在使用 ctest 获取脚本(例如 BASH)中通过(和/或失败)的测试数量时,是否有一种直接的方法,而无需通过生成的输出文件进行 grep-ping?
解决方法
一个简单的方法......没有grep-ping
不,我相信没有。
您还可以从 CMake Test failed.
中“grep”计数行 Test passed.
和 the_build_dir/Testing/Temporary/LastTest.log
。
您可以将 ctest XML 报告生成到仪表板,然后解析 XML 报告(而不是发送它们)。它没有那么简单,因为必须编写 ctest 脚本来配置、构建和测试项目,然后需要单独的 XML 工具来解析结果。
您还可以运行 cdash 服务器,让 ctest 脚本将结果上传到 cdash,然后使用简单的 curl 'https://your.cdash.server/api/v1/index.php?project=TheProjectName' | jq '.buildgroups[] | select(.id == 2).builds[] | { "pass": .test.pass,"fail": .test.fail,}
查询 cdash 服务器。查询很简单,但是..它需要运行一个 cdash 服务器并使用 ctest 脚本进行测试,这不是很简单..
顺便说一句,获得失败测试的数量很容易 - 只是 wc -l the_build_dir/Testing/Temporary/LastTestsFailed.log
。