使用CMake与CTest和CDash

3

我打算在我的C++项目中使用CDash,配合CMake/CTest使用。

为了启用CDash并自定义设置,比如"MEMORYCHECK_SUPPRESSIONS_FILE""DART_TESTING_TIMEOUT",我在根目录的CMakeLists.txt中添加了以下代码:


set(MEMORYCHECK_SUPPRESSIONS_FILE "${CMAKE_SOURCE_DIR}/valgrind.supp")
set(DART_TESTING_TIMEOUT "120")
include(CTest)

然而,生成的"DartConfiguration.tcl"根本没有包含我的设置(MemoryCheckSuppressionFile是空的,TimeOut仍然是默认值)。

我发现,如果我像这样传递参数 -DDART_TESTING_TIMEOUT=STRING:120,那就可以工作,但是如果在CMakeLists.txt中指定它们,则会失败。

提前感谢您的帮助 :)

DartConfiguration.tcl



# 动态分析和覆盖率 PurifyCommand: ValgrindCommand: ValgrindCommandOptions: MemoryCheckCommand: /usr/bin/valgrind MemoryCheckCommandOptions: MemoryCheckSuppressionFile: CoverageCommand: /usr/bin/gcov
# 测试选项 # TimeOut 是等待测试进程完成的时间(以秒为单位)。超过 TimeOut 秒后,该进程将被终止。 # 当前设置为 25 分钟 TimeOut: 1500
1个回答

3
有三种可能的解决方案:
  1. 创建缓存变量。这也会创建变量的 GUI 条目,对于自动测试来说并不总是所需的:SET(DART_TESTING_TIMEOUT "120" CACHE STRING "")

  2. 使用一个简单的 "set" 命令指定选项,但在名为 DartConfig.cmake 的文件中而不是主要的 CMakeLists.txt 文件中。这个文件被解析以创建 DartConfiguration.tcl

  3. 使用 CTest 脚本设置 dartclient:http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接