You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Catch2编写C++单元测试时遇env可执行文件找不到问题

解决CLion中CMake Catch2测试报错“Unable to find executable: env”的问题

你遇到的报错源于add_test命令里直接调用了env程序——Windows环境下不存在该命令,且这种设置环境变量的方式不符合CMake跨平台规范。

修复步骤

替换原有测试注册代码,改用CMake原生的环境变量设置方式:

# 替换原有的Register Tests部分
add_test(NAME tests COMMAND ./tests)
set_tests_properties(tests PROPERTIES
    ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1"
)

原理说明

  • add_test(NAME tests COMMAND ./tests) 直接指定测试可执行文件,彻底避免对外部env命令的依赖
  • set_tests_properties 通过ENVIRONMENT参数为测试进程设置环境变量,该方式完美兼容Windows、Linux和macOS平台
  • CTEST_OUTPUT_ON_FAILURE=1 仍会正常生效,测试失败时Catch2会自动输出详细报错信息

修改后重新生成CMake项目并运行测试,即可解决找不到env的问题。

内容的提问来源于stack exchange,提问作者blip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:43:14