使用 CTest 和 CDash 上传图像差异



为了在C++应用程序中运行自动测试,我希望应用程序转储图像并将其与基线图像进行比较。我在各种 CDash 仪表板上看到了几个示例,例如这个(链接可能无效很长时间(。 https://open.cdash.org/testDetails.php?test=660365465&build=5407474

我的谷歌在这一点上让我失望了,获得此功能的正确方法是什么?

将普通文件附加到测试结果的最简单方法是在ATTACHED_FILESATTACHED_FILES_ON_FAIL测试属性中列出这些文件。不过,这不是这里使用的机制。

根据这个邮件列表帖子,您可以将如下所示的特殊内容输出到测试的 stdout,这会导致上传命名文件。您链接到的示例 CDash 结果页面遵循与邮件列表中的示例类似的模式,我在此处复制了该示例以供参考(我做了一个小更正以将DifferenceImage更改为DifferenceImage2(:

<DartMeasurement name="BaselineImage" type="text/string">Standard</DartMeasurement>
<DartMeasurementFile name="TestImage" type="image/png">C:/Users/.../Testing/Temporary/BoxWidget.png</DartMeasurementFile>
<DartMeasurementFile name="DifferenceImage2" type="image/png">C:/Users/.../Testing/Temporary/BoxWidget.diff.png</DartMeasurementFile>
<DartMeasurementFile name="ValidImage" type="image/png">C:/Users/.../VTKData/Baseline/Widgets/BoxWidget.png</DartMeasurementFile>

我已经检查了 CTest 源代码,它会扫描测试输出,在这里和这里寻找<DartMeasurement><DartMeasurementFile>标签。这些作为离散测量项目上传到 CDash,CDash 也会查找这些特定名称并特别显示它们,如问题中的示例 CDash 链接所示。

相关内容

  • 没有找到相关文章

最新更新