从cmake使用的构建目录以外的目录运行ctest?

时间:2016-07-28 19:03:12

标签: cmake ctest

我希望能够以类似的方式运行cmake,如

cmake -H<src-directory> -B<bld-directory> cmake --build <bld_directory>

运行ctest,如

ctest --build <bld_directory>

显然从遗嘱中运行ctest, 但如果我能告诉ctest在哪里查找其配置文件以及测试可执行文件所在的位置,那就太好了。

从文档来看,如果可能的话,它不是很清楚(或者我可能没有找到正确的位置)。

如果有人能够了解这是否可行,那会很棒吗? 非常感谢, 吉日

1 个答案:

答案 0 :(得分:3)

我找不到通过ctest选项执行此操作的方法,但使用链接到ctest的规则make test是可行的。

在构建文件夹中由cmake生成的Makefile中,您可以找到规则:

#Special rule for the target test
test:
    @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
    /usr/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test

make提供了-C /path/to/build_directory/所需的选项,您可以使用ctest

添加任何ARGS='your ctest options here'个选项

例如,您可以从系统中的任何目录中编写:

make test -C /path/to/build_folder ARGS='-R SpecificTestIWantToRun -VV'

cmake --build <bld_directory> --target test -- ARGS="<ctest_args>"