add_test的命令形式如下
add_test(NAME <name> COMMAND <command> [<arg>...] [CONFIGURATIONS <config>...] [WORKING_DIRECTORY <dir>] [COMMAND_EXPAND_LISTS])
set_tests_properties的命令形式如下
set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
我见过的cmake工具测试的套路之一如下
首先,启动测试 enable_testing()
其次,add_test(...)
接下来,set_tests_properties(...)
案例目录如下
.
├── build
├── CMakeLists.txt
└── main.cpp
main.cpp的内容如下
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int sum(int a, int b)
{
>---return a+b;
}
int main(int argc, char* argv[])
{
>---if(3 == argc)
>---{
>--->---cout << "parameter right" << endl;
>--->---cout << sum(atoi(argv[1]), atoi(argv[2])) << endl;
>---}
>---else
>---{
>--->---cout << "input num err" << endl;
>--->---return -1;
>---}
>---return 0;
}
CMakeLists.txt的内容如下
#最小版本说明
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
#项目信息
PROJECT(main)
#生成可执行文件
ADD_EXECUTABLE(main main.cpp)
#使能测试
enable_testing()
#添加测试
add_test(demo_test main 2 3)
#设定测试特性
set_tests_properties(demo_test PROPERTIES PASS_REGULAR_EXPRESSION "5")
build是编译目录,方便编译出错时,清除生成的缓存文件
cd build //进入编译目录
cmake .. //编译主目录的CMakeLists.txt
make //编译生成的MakeFile.txt
make test //执行CMakeLists.txt里的测试
执行结果如下图所示
参考文献如下
cmake的帮助文档的网址