把我们的测试结果提交到dashboard是很酷的,CMake也能支持,实现起来也很简单。我们已经为工程定义了一些测试,Testing Support。现在,我们只需要执行这些测试用例,并把结果提交给CDash就可以。
练习 1 - 向Dashboard发送测试结果
目标
在CDash上显示我们的 CTest 测试结果。
参考资源
待编辑文本
-
CMakeLists.txt
开始
本次练习需要完成TODO 1,修改顶层CMakeLists.txt,包含
CTest 模块。这将启用CTest测试,并向CDash提交测试结果,因此,我们可以删除 enable_testing() 调用。
我们还需要获取一份 CTestConfig.cmake
文件,并把它放在顶层目录下。运行过程中ctest将会读取这个文件来收集dashboard所需要的信息。它包含以下内容:
-
工程名称
-
工程“每夜”开始的时间
-
工程24小时描述的“天”的起始时间。
-
-
CDash运行实例的URL,收集的数据将被发到这里。
本教程使用一个公用的dashboard服务,并为你提供了对应的CTestConfig.cmake
文件,你可以在源码包中,本讲对应的子目录下找到。实际上,这个文件应当从托管测试结果的CDash 实例上对应工程的Settings
页面下载。从CDash下载之后,不应该在本地修改它。
CTestConfig.cmake
set(CTEST_PROJECT_NAME "CMakeTutorial")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=CMakeTutorial")
set(CTEST_DROP_SITE_CDASH TRUE)
构建与运行
注意,在CDash提交信息的过程中,可能会公开显示一些与你的开发系统相关的信息(比如站点名字或完整路径信息)。
要创建一个简单的测试dashboard, 请运行 cmake 或 cmake-gui 来配置并初始化工程,但先不要构建它。先导航到build 目录并运行:
ctest [-VV] -D Experimental
对于多配置的集成开发环境(比如Visual Studio),必须指定配置类型:
ctest [-VV] -C Debug -D Experimental
或者,直接从IDE上构建 Experimental
目标。
在这过程中,ctest 将会创建工程,运行测试,并把测试结果发送到Kitware的公开dashboard: CDash上。
解决方案
这一讲里,我们只需要修改一处CMake代码即可,它引用 CTest 模块,并启用上传测试结果到CDash的功能。修改的文件是顶层的CMakeLists.txt:
# TODO 1: Replace enable_testing() with include(CTest)
# enable testing
# enable_testing()
include(CTest)