Ctest 在脚本中获取测试数 passed/failed

Ctest get number of tests passed/failed in script

在脚本中使用 ctest 获取通过的测试数(and/or 失败)时,是否有直接的方法,例如 BASH,而无需通过生成的输出文件进行 grep-ping?

a straightforward way ... without grep-ping

没有,我相信没有。

您还可以从 CMake the_build_dir/Testing/Temporary/LastTest.log.

中“grep”计算行数 Test failed.Test passed.

您可能会向仪表板生成 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