Skip to main content
Version: 1.1.1

教程: 测试模块

该页面为如何使用测试模块快捷构建测试。

编译测试

函数: kmcmake_cc_test

参数:

对部分测试,在某些情况下,需要禁止,使用DISABLED参数。

示例:

kmcmake_cc_test(
NAME raw_test
MODULE base
SOURCES raw_test.cc
)

批量禁止测试

在调试过程中,每个测试禁用,需要大量的操作,km提供了批量禁用测试的方法,在${PROJECT_DIR}/cmake/${project_name}_test.cmake文件中 list(APPEND ${PROJECT_NAME}_SKIP_TEST "norun")将您的测试模块名加入${PROJECT_NAME}_SKIP_TEST中。测试模块名也就是上文中的 MODULE参数的值。如,禁止container模块下所有测试,在list(APPEND ${PROJECT_NAME}_SKIP_TEST "norun")下加入一行,修改后如下:

list(APPEND ${PROJECT_NAME}_SKIP_TEST "norun")
list(APPEND ${PROJECT_NAME}_SKIP_TEST "container")

测试扩展

上面提到测试在运行测试时无需输入命令行参数。如果需要输入命令行参数的测试请参考这部分的方法:

  1. 使用kmcmake_cc_test,并增加EXT参数,意义为仅编译测试程序,但不注册测试。
kmcmake_cc_test(
NAME pass_test
MODULE base
SOURCES pass_test.cc
EXT
)

2 使用 kmcmake_cc_test_ext注册测试。

示例:

kmcmake_cc_test_ext(
NAME args_test
MODULE base
ALIAS skip
ARGS "SKIP"
PASS_EXP "pass;Passed"
FAIL_EXP "[^a-z]Error;ERROR;Failed"
SKIP_EXP "[^a-z]Skip" "SKIP" "Skipped"
)

参数:

  • ALIAS 在原测试名的基础上追加的结尾,用以区别测试名
  • MODULE 与kmcmake_cc_test中保持一致
  • NAME 与kmcmake_cc_test中保持一致
  • ARGS 运行的命令行参数
  • PASS_EXP 测试通过的正则匹配
  • FAIL_EXP 测试失败的正则匹配
  • SKIP_EXP 跳过测试的正则匹配