如果我的项目有很多测试,则可以在cmake
和make
进行构建并使用make test
进行构建之后运行它们。
但是,如果我只想运行我的测试之一怎么办?也就是说,我在测试add_test()
中拥有CMakeFile.txt
的项目之一?
答案 0 :(得分:1)
einpoklum并不完全正确。实际上,您可以根据需要使用make test
。 CMake将生成一个Makefile,我发现它接受一个ARGS
变量。
这意味着您可以通过-R(regex)参数运行特定的测试。使用make test时会如下所示:
make test ARGS="-R '^test_'"
这只会运行文件名中以test_
开头的测试用例文件。
注意: -R
只是一个示例,它将接受 all ,所有ctest
命令也将接受的参数。>
无论如何,上面的make测试示例将与运行完全相同:
ctest -R '^test_'
此致
梅洛伊
答案 1 :(得分:0)
两件事可能会使您感到困惑:
make
进行此操作,因为make test
为您运行了所有测试。这不适用于单个测试。使用ctest
。如果您已开始使用ctest,例如在主项目目录中,您可能会得到类似以下内容的信息:
*********************************
No test configuration file found!
*********************************
Usage
ctest [options]
这没有帮助。
...所以您认为“好吧,它可能具有-C
开关,例如CMake和Make”-的确,它具有-C
开关!但这并没有达到您的预期:
[joeuser:/home/joeuser/src/myproj]$ ctest -C build
Test project /home/joeuser/src/myproj
No tests were found!!!
您实际需要做什么:
cd $YOUR_BUILD_DIRECTORY
ctest -R name_of_your_test
(请注意-R
与正则表达式匹配。)这应该起作用。请注意,您可以列出要运行的测试,而不是通过将-N
传递到ctest
来实际运行它们。
感谢@RTsyvarev向我指出正确的方向