CTest

一、初识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
View Code

src

//sqr.cpp
 
#include "sqr.h"
 
double sqr(double x) {
    return x * x;
}
 
//main.cpp
int main()
{
    return 0;
}
View Code

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})
View Code

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)
View Code

 

 

转载于:https://www.cnblogs.com/457220157-FTD/p/4139149.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值