CTest

news/2024/12/5 3:22:00/
一、初识CTest

       CTest是CMake集成的一个测试工具,在使用CMakeLists.txt文件编译工程的时候,CTest会自动configure、build、test和展现测试结果

       CTest有两个模式:

  • 模式一: 使用CMake configure 和 build工程,在CMakeLists.txt文件中,使用特殊的命令取创建tests。CTest用来执行那些测试
  • 模式二: 使用CTest来执行一个script(这个script的语法必须和CMakeLists.txt相同),去控制整个程序的输出结果=
二、使用方法

  目前我们在工程中这样构建单元测试

复制代码
project|--------include||--------src||-----------test|       |---CMakeLists.txt||--------CMakeLists.txt
复制代码

  1. 在外面的CMakeLists.txt中我们这样写

复制代码
cmake_minimum_required(VERSION 2.8)
project(test)
....
add_subdirectory(test)
enable_testing()
add_test(NAME mytest COMMAND Test)
复制代码

  2. 在test/CMakeLists.txt中写你的测试需要的即可(可以如下面那样写)

三、完整的简单测试工程

include

复制代码
//sqr.h
 #ifndef SQR_H_
#define SQR_H_double sqr(double);#endif
复制代码

src

复制代码
//sqr.cpp
 
#include "sqr.h"double sqr(double x) {return x * x;
}//main.cpp
int main()
{return 0;
}
复制代码

test

复制代码
//test.cpp
#include "sqr.h"
#define BOOST_TEST_MODULE SqrTests
#include <boost/test/unit_test.hpp>BOOST_AUTO_TEST_CASE(FailTest)
{BOOST_CHECK_EQUAL(5, sqr(2));
}BOOST_AUTO_TEST_CASE(PassTest)
{BOOST_CHECK_EQUAL(4, sqr(2));
}//CMakeLists.txt
find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)include_directories(include ${Boost_INCLUDE_DIRS}/boost)add_definitions(-DBOOST_TEST_DYN_LINK -g)
add_executable(Test test.cpp)target_link_libraries(Test sqr ${Boost_FILESYSTEM_LIBRARY}${Boost_SYSTEM_LIBRARY}${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})message(WARNING ${Boost_FILESYSTEM_LIBRARY})
message(WARNING ${Boost_SYSTEM_LIBRARY})
message(WARNING ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
复制代码

CMakeLists.txt

复制代码
cmake_minimum_required(VERSION 2.8)
project(test)include_directories(include)
add_library(sqr STATIC src/sqr.cpp)add_executable(demo src/main.cpp)
target_link_libraries(demo sqr)add_subdirectory(test)
enable_testing()
add_test(NAME mytest COMMAND Test)
复制代码

http://www.ppmy.cn/news/759528.html

相关文章

linux有趣程序视频,Linux系统下也玩视频编辑 10个非常流行的免费Linux视频软件

为了满足广大Linux爱好者的需要&#xff0c;我们为大家搜罗基于Linux操作系统的优秀应用软件。首先&#xff0c;让我们一起来认识一些面向Ubuntu Linux的免费的视频编辑工具。 PiTiVi是一个使用Python所写并基于GStreamer和GTK的开源视频编辑软件。无论是编辑视频的新手&#x…

SaaSpace:10款最佳免费编剧软件

当希望将剧本出售给任何电影或电视制作工作室时&#xff0c;您作品中最重要的方面之一将是遵循标准的编剧格式。 因此&#xff0c;首先&#xff0c;打开任何普通的文字处理器并开始格式化。只需在右边距缩进 1.5 英寸&#xff0c;在左边距缩进 1.5 英寸。而且从顶部1英寸&#…

iconik--AI智能媒体管理解决方案

ftrack于去年加入Backlight&#xff0c;旗下有Celtx, Iconik, Wildmoka, 和Zype。这些公司都为媒体、娱乐和视频领域的客户提供基于云的解决方案。 今天&#xff0c;我们就来隆重地介绍其中一款软件–iconik&#xff01;谷歌、VICE媒体、亚马逊旗下米高梅、Complex Networks和S…

【软件安装】TeXLive 2022安装(Latex下载,安装,测试,升级)教程

讲解了如何下载&#xff0c;安装&#xff0c;测试&#xff0c;升级latex&#xff0c;并配置编译器 操作系统Windows10 链接 https://pan.baidu.com/s/1ULi37q2jjyve-eHsyQ6m2w 提取码 0pvp 1 下载 TeXLive是免费软件&#xff0c;首先打开它的官网&#xff1a;tug.org/texli…

texelFetch

在GLSL环境要想精确地换取每个像素的值&#xff0c;这个时候就不能使用传统的 texture(sampler2d) &#xff0c;因为采样器sampler2d默认是float精度&#xff0c;而且texture采用函数会涉及归一化、过滤以及插值等复杂操作&#xff0c;基本无法得到某一确切像素的值。 此时很多…

celtx保存在html,Celtx

Celtx最新版是一款十分出色的电影视频脚本制作程序&#xff0c;Celtx最新版界面简洁&#xff0c;功能强大&#xff0c;可以轻松快捷的制作电影脚本&#xff0c;不仅如此&#xff0c;Celtx官方版还内置了丰富的项目模板&#xff0c;能够轻松快捷的地将信息发布至相关工作人员分享…

2022 年顶级游戏开发工具

2,000 亿美元。 这样一个可以追溯到 20 世纪 50 年代的产业现今产值已逾 2,000 亿美元&#xff0c;据估计&#xff0c;间接收入可达 1,000 亿美元。新冠疫情对于蓬勃发展中的游戏业确有益处&#xff0c;因为新老玩家都呆在室内&#xff0c;沉浸于我们这样的开发人员人为创造的…

Excel如何在运算中过滤重复数据?

来百度APP畅享高清图片 问题&#xff1a;两个对比表格内的数据实际是有重复的但是不是完全重复&#xff0c;比如a-b 和b-a 只是顺序换了但是条件格式就无法筛选了&#xff0c;只能筛选出a-b a-b 的相同数据。 需求&#xff1a;要筛选出a-b a-b b-a的重复数据&#xff0c;或者把…