第14章 测试面板
本章的主要内容有:
- 将测试部署到CDash面板
- CDash面板显示测试覆盖率
- 使用AddressSanifier向CDash报告内存缺陷
- 使用ThreadSaniiser向CDash报告数据争用
CDash是一个web服务,用于汇集CTest在测试运行期间、夜间测试期间或在持续集成中的测试结果。面板报告就是我们所说的CDash时,如下图所示:
本章中,我们将向CDash报告测试结果。将讨论报告测试覆盖率的策略,以及分别使用AddressSanifier和ThreadSanifier等工具,收集的内存缺陷和数据争用问题。
有两种方法向CDash报告结果:
- 通过构建的测试目标
- 使用CTest脚本
在前两个示例中使用建立测试目标的方式,在后两个示例中使用CTest脚本。
CDash环境
CDash的安装需要使用PHP和SSL的web服务器(Apache、NGINX或IIS),并访问MySQL或PostgreSQL数据库服务器。详细讨论CDash web服务的设置超出了本书的范围,读者们可以参考官方文档:https://public.kitware.com/Wiki/CDash:Installation
Kitware提供了两个面板(https://my.cdash.org 和 https://open.cdash.org ),因此本章中的示例并不需要安装CDash。我们将在示例中参考已经提供的面板。
对于想要自己安装CDash的读者,我们建议使用MySQL作为后端,因为这是 https://my.cdash.org 和 https://open.cdash.org 的配置方式,而且社区也对这种搭配方式进行了测试。
NOTE:也可以使用Docker来安装CDash。官方镜像的请求在CDash的跟踪器上处于打开状态,网址是https://github.com/Kitware/CDash/issues/562