[quality] 05 - ctest: cmake tells U how to test

官方文档:https://cmake.org/cmake-tutorial/

这里只是简单的介绍一下,可能gtest在real world中 is more pragmatic.

 

原文:为工程添加测试

# 启用测试
enable_testing()

# 测试程序是否成功运行
add_test (test_run Demo 5 2)

# 测试帮助信息是否可以正常提示
add_test (test_usage Demo)
set_tests_properties (test_usage
  PROPERTIES PASS_REGULAR_EXPRESSION "Usage: .* base exponent")

# 测试 5 的平方
add_test (test_5_2 Demo 5 2)
set_tests_properties (test_5_2
 PROPERTIES PASS_REGULAR_EXPRESSION "is 25")

# 测试 105 次方
add_test (test_10_5 Demo 10 5)
set_tests_properties (test_10_5
 PROPERTIES PASS_REGULAR_EXPRESSION "is 100000")

# 测试 210 次方
add_test (test_2_10 Demo 2 10)
set_tests_properties (test_2_10
 PROPERTIES PASS_REGULAR_EXPRESSION "is 1024")

 

定义一个宏,用来简化测试工作:

macro (do_test arg1 arg2 result)
  add_test (test_${arg1}_${arg2} Demo ${arg1} ${arg2})
  set_tests_properties (test_${arg1}_${arg2}
    PROPERTIES PASS_REGULAR_EXPRESSION ${result})
endmacro (do_test)
 
# 使用该宏进行一系列的数据测试
do_test (5 2 "is 25")
do_test (10 5 "is 100000")
do_test (2 10 "is 1024")

 

测试结果的样子:

[ehome@xman Demo5]$ make test
Running tests...
Test project /home/ehome/Documents/programming/C/power/Demo5
Start
1: test_run 1/4 Test #1: test_run ......................... Passed 0.00 sec Start 2: test_5_2 2/4 Test #2: test_5_2 ......................... Passed 0.00 sec Start 3: test_10_5 3/4 Test #3: test_10_5 ........................ Passed 0.00 sec Start 4: test_2_10 4/4 Test #4: test_2_10 ........................ Passed 0.00 sec 100% tests passed, 0 tests failed out of 4 Total Test time (real) = 0.01 sec

 

End.

posted @ 2019-06-17 15:51  郝壹贰叁  阅读(160)  评论(0)    收藏  举报