我正在尝试对使用 CMake+CTest 的项目进行覆盖分析。我创建了一个简单的TestingScript.cmake,看起来像:
set(CTEST_SOURCE_DIRECTORY .)
set(CTEST_BINARY_DIRECTORY build_coverage)
ctest_start(TestCoverage)
ctest_coverage(BUILD ${CTEST_BINARY_DIR})
并尝试使用以下命令运行它:
doriad@david-desktop:~/build/Examples/Coverage$ ctest -S ~/src/Examples/Coverage/TestingScript.cmake
Cannot locate CTest configuration: in BuildDirectory: /home/doriad/build/Examples/Coverage/build_coverage/CTestConfig.cmake
Cannot locate CTest configuration: in SourceDirectory: /home/doriad/build/Examples/Coverage/CTestConfig.cmake
Cannot find any coverage files. Ignoring Coverage request.
我需要做什么来生成它正在寻找的这个CTestConfig.cmake文件?
> 文件CTestConfig.cmake
通常由 CDash 生成。登录到 CDash 后,选择"设置">"项目">"杂项">"下载 CTestConfig"。该文件包含将结果提交到仪表板服务器的配置。
该模块的默认设置是将仪表板提交到 Kitware 的公共仪表板,您可以在其中免费注册项目。
要提交到其他服务器,请在源的顶级目录中
CTestConfig.cmake
,并设置您自己的仪表板首选项。如果您使用的是 CDash 服务器,则可以从该服务器上的相应项目页面下载预配置的文件(设置/项目,选项卡"杂项"(。来源: https://gitlab.kitware.com/cmake/community/wikis/doc/ctest/Testing-With-CTest
另一个问题是,由于您跳过了测试脚本中的生成和测试步骤,因此没有要提交的覆盖率文件。