使用 CTest 和 CDash 上传图像差异
Upload image diff using CTest and CDash
对于 C++ 应用程序中的 运行 自动化测试,我希望应用程序转储图像并将其与基线图像进行比较。我在各种 CDash 仪表板上看到了几个这样的例子,例如这个(link 可能不会长期有效)。
https://open.cdash.org/testDetails.php?test=660365465&build=5407474
我的 google-fu 在这方面让我失望了,获得此功能的正确方法是什么?
将普通文件附加到测试结果的最简单方法是在 ATTACHED_FILES
or ATTACHED_FILES_ON_FAIL
测试属性中列出这些文件。不过,这不是此处使用的机制。
根据 this mailing list post,您可以将如下所示的特殊内容输出到测试的标准输出,这会导致命名文件被上传。您链接到的示例 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>
标签 here and here. These are uploaded as discrete measurement items to CDash, which also looks for these particular names 并像示例 CDash 链接中那样特别呈现它们问题。
对于 C++ 应用程序中的 运行 自动化测试,我希望应用程序转储图像并将其与基线图像进行比较。我在各种 CDash 仪表板上看到了几个这样的例子,例如这个(link 可能不会长期有效)。 https://open.cdash.org/testDetails.php?test=660365465&build=5407474
我的 google-fu 在这方面让我失望了,获得此功能的正确方法是什么?
将普通文件附加到测试结果的最简单方法是在 ATTACHED_FILES
or ATTACHED_FILES_ON_FAIL
测试属性中列出这些文件。不过,这不是此处使用的机制。
根据 this mailing list post,您可以将如下所示的特殊内容输出到测试的标准输出,这会导致命名文件被上传。您链接到的示例 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>
标签 here and here. These are uploaded as discrete measurement items to CDash, which also looks for these particular names 并像示例 CDash 链接中那样特别呈现它们问题。