9.MariaDB笔记——cmake使用介绍四安装与测试

本文介绍了如何使用CMake进行项目的安装配置,并详细说明了如何添加不同类型的测试用例以确保应用程序的功能正确性。通过实际案例展示了安装目标、头文件及可执行文件的方法,并提供了测试配置的具体步骤。

9.MariaDB笔记——cmake使用介绍四安装与测试

继续下一步,增加安装规则和测试。

对上篇中的MathFunctions库,我们安装库和头文件通过在MathFunctionsCMakeLists文件中加入如下两行:

install(TARGETS MathFunctions DESTINATION bin)

install (FILESMathFunctions.h DESTINATION include)

对于整个应用,在顶层的CMakeLists文件中加入如下:

# add the installtargets

install(TARGETS Tutorial DESTINATION bin)

install (FILES"${PROJECT_BINARY_DIR}/TutorialConfig.h"       

         DESTINATION include)

这样的话,输入make install后可以安装头文件,库,可执行文件到系统。

CMake 的变量CMAKE_INSTALL_PREFIX用于控制文件安装的前缀路径。

 

Tests

CMakeLists文件的最后可以加入一些基本测试来确保应用工作正常。

include(CTest)

# does theapplication run

add_test(TutorialRuns Tutorial 25)

# does it sqrtof 25

add_test(TutorialComp25 Tutorial 25)

set_tests_properties(TutorialComp25

  PROPERTIES PASS_REGULAR_EXPRESSION "25is 5")

# does ithandle negative numbers

add_test(TutorialNegative Tutorial -25)

set_tests_properties(TutorialNegative

  PROPERTIES PASS_REGULAR_EXPRESSION "-25is 0")

# does ithandle small numbers

add_test(TutorialSmall Tutorial 0.0001)

set_tests_properties(TutorialSmall

  PROPERTIES PASS_REGULAR_EXPRESSION"0.0001 is 0.01")

# does theusage message work?

add_test(TutorialUsage Tutorial)

set_tests_properties(TutorialUsage

  PROPERTIES

  PASS_REGULAR_EXPRESSION"Usage:.*number")

编译后,执行make ctest来进行测试。如下:

F:\ cmake_zhizuo>ctest

Test project F:/VS2010_ZHIZUO/cmake_zhizuo

   Start 1: TutorialRuns

1/5 Test #1: TutorialRuns.....................   Passed    0.95 sec

   Start 2: TutorialComp25

2/5 Test #2: TutorialComp25...................***Failed  Requiredregular expre

ssion not found.Regex=[25 is 5

] 0.02 sec

   Start 3: TutorialNegative

3/5 Test #3: TutorialNegative.................***Failed  Requiredregular expre

ssion not found.Regex=[-25 is 0

] 0.03 sec

   Start 4: TutorialSmall

4/5 Test #4: TutorialSmall....................***Failed  Requiredregular expre

ssion not found.Regex=[0.0001 is 0.01

] 0.02 sec

   Start 5: TutorialUsage

5/5 Test #5: TutorialUsage....................   Passed    0.02 sec

 

40% tests passed, 3 tests failed out of 5

 

Total Test time (real) =   1.09 sec

 

The following tests FAILED:

         2 - TutorialComp25 (Failed)

         3 - TutorialNegative (Failed)

         4 - TutorialSmall (Failed)

Errors while running CTest

如果需要增加很多测试,可以增加宏如下:

#define amacro to simplify adding tests, then use it

macro (do_testarg result)

  add_test (TutorialComp${arg} Tutorial ${arg})

  set_tests_properties (TutorialComp${arg}

    PROPERTIES PASS_REGULAR_EXPRESSION${result})

endmacro(do_test)

# do a bunchof result based tests

do_test (25"25 is 5")

do_test (-25"-25 is 0")

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值