无法运行ct_netconfc_SUITE测试用例,CTH启动失败求排查指引
问题描述
运行Erlang Common Test套件ct_netconfc_SUITE中的get测试用例时触发错误:
Failed: "Failed to start CTH, see the CT Log for details", [{ct_netconfc_SUITE, init_per_suite}]
执行的命令如下:
cd otp\lib\common_test ct_run -suite test\ct_netconfc_SUITE -case get
但未在CT日志中找到相关错误线索,需要问题排查及解决方向。
排查与解决方向
1. 确认CT日志的实际生成路径
- Common Test默认会在执行
ct_run命令的当前路径下生成./logs目录,检查该目录下最新的suite.log或ct_run.*开头子目录内的日志文件 - 若未找到,可执行
ct_run -help查看默认日志路径规则;如果运行时指定了-logdir参数,直接去对应目录查找
2. 检查CTH(Common Test Hook)的初始化依赖
- 查看
ct_netconfc_SUITE.erl源码中的init_per_suite函数,定位它尝试启动的CTH模块,确认该模块的启动条件:- 是否需要依赖本地运行的NETCONF模拟服务/真实服务
- 是否要求特定配置文件、端口未被占用、操作权限是否足够
- 手动验证CTH模块的可启动性,比如在Erlang shell中调用该模块的启动函数,看是否能正常运行
3. 强制开启调试级日志重新运行
- 添加日志级别参数,让CT输出更详细的调试信息,捕捉CTH启动过程中的细节:
ct_run -suite test\ct_netconfc_SUITE -case get -log_level debug
4. 验证测试套件的配置依赖
- 检查
ct_netconfc_SUITE是否需要特定配置文件,比如测试目录下的.config文件,或是否需要通过-config参数指定配置路径 - 确认环境变量设置是否符合测试要求,比如Erlang节点名称、NETCONF相关的环境变量
5. 检查Common Test的完整性与版本兼容性
- 重新编译
common_test模块,验证文件是否完整:cd otp\lib\common_test make - 确认当前OTP版本与
ct_netconfc_SUITE的兼容性,部分测试用例仅适配特定OTP版本
内容的提问来源于stack exchange,提问作者Bhuvan
相关产品推荐
相关产品推荐

