unit-testing - 使用 ctest/cmake 测试非零退出状态

标签 unit-testing cmake ctest

感兴趣的应用程序是一个编译器,它在源代码中遇到错误时返回一个非零退出代码。编译器的单元测试由有意触发错误的小片段组成。

用于添加测试的函数是:

function(add_compiler_test test_name options)
  add_test(NAME ${test_name}
    COMMAND $<TARGET_FILE:pawncc> ${DEFAULT_COMPILER_OPTIONS} ${options})
  set_tests_properties(${test_name} PROPERTIES
    ENVIRONMENT PATH=$<TARGET_FILE_DIR:pawnc>)
endfunction()

尽管这是正确的行为,但当程序返回非零退出代码时,这会导致测试失败。

如何测试程序的退出状态?

最佳答案

如果您希望测试在返回非零退出状态时报告为成功,否则为 FAILED,设置 WILL_FAIL测试的属性:

set_tests_properties(<test1> <test2> ... PROPERTIES WILL_FAIL TRUE)

关于unit-testing - 使用 ctest/cmake 测试非零退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51289456/

相关文章:

android - "java.lang.SecurityException:Injecting to another application requires INJECT_EVENTS permission"多个 Activity 工作流测试 android 时出错

python - 将测试标记为从 pytest 中的 fixture 内部通过

c++ - clang 格式的 Visual Studio 插件和 cmake

c++ - 将预处理器定义添加到 cmake 外部项目

java - 线程安全单元测试

android - 如何在 Android 单元测试中访问资源?

CMake TARGET_NAME 生成器表达式

bash - 使用 bash 与 CMake 和 CTest 进行简单的集成测试?

cmake - CTest 在 make <target> 后生成并提交 gcov.tar 到 Cdash

cmake - 使用 cmake 构建我的项目后如何运行 ctest