对于在C++应用程序中运行自动测试,我希望应用程序转储图像并将其与基线图像进行比较。我在各种CDash仪表板上看到了这方面的几个例子,例如这个(链接可能在很长时间内无效)。https://open.cdash.org/testDetails.php?test=660365465&build=5407474
我的google-fu在这个问题上失败了,有什么正确的方法来获得这个功能呢?
发布于 2018-06-08 12:21:55
将普通文件附加到测试结果的最简单方法是在ATTACHED_FILES或ATTACHED_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链接示例所示。
https://stackoverflow.com/questions/50719666
复制相似问题