# 第14章 测试面板

本章的主要内容有：

* 将测试部署到CDash面板
* CDash面板显示测试覆盖率
* 使用AddressSanifier向CDash报告内存缺陷
* 使用ThreadSaniiser向CDash报告数据争用

CDash是一个web服务，用于汇集CTest在测试运行期间、夜间测试期间或在持续集成中的测试结果。面板报告就是我们所说的**CDash时**，如下图所示：

![](https://3513714349-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LmKrb21cWXviLivD2c0%2F-LmKrxejmBl_MvD1t461%2F-LmKs9Mq3NYlLAVC0eH6%2F2.png?generation=1565882628499602\&alt=media)

本章中，我们将向CDash报告测试结果。将讨论报告测试覆盖率的策略，以及分别使用AddressSanifier和ThreadSanifier等工具，收集的内存缺陷和数据争用问题。

有两种方法向CDash报告结果：

1. 通过构建的测试目标
2. 使用CTest脚本

在前两个示例中使用建立测试目标的方式，在后两个示例中使用CTest脚本。

## CDash环境

CDash的安装需要使用PHP和SSL的web服务器(Apache、NGINX或IIS)，并访问MySQL或PostgreSQL数据库服务器。详细讨论CDash web服务的设置超出了本书的范围，读者们可以参考官方文档：[https://public.kitware.com/Wiki/CDash:Installation](https://public.kitware.com/Wiki/CDash:Installation)

Kitware提供了两个面板([https://my.cdash.org](https://my.cdash.org) 和 [https://open.cdash.org](https://open.cdash.org) )，因此本章中的示例并不需要安装CDash。我们将在示例中参考已经提供的面板。

对于想要自己安装CDash的读者，我们建议使用MySQL作为后端，因为这是 [https://my.cdash.org](https://my.cdash.org) 和 [https://open.cdash.org](https://open.cdash.org) 的配置方式，而且社区也对这种搭配方式进行了测试。

**NOTE**:_也可以使用Docker来安装CDash。官方镜像的请求在CDash的跟踪器上处于打开状态，网址是_[https://github.com/Kitware/CDash/issues/562](https://github.com/Kitware/CDash/issues/562)
