Ctest 获取脚本中通过/失败的测试数量

问题描述

在使用 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