仓颉测试框架TPC-Test-Framework进阶配置case_config.cfg三种方式自动下载第三方动态库【免费下载链接】TPC-Test-Framework仓颉用例执行脚本项目地址: https://gitcode.com/Cangjie-TPC/TPC-Test-FrameworkTPC-Test-Framework是面向纯仓颉项目的测试框架可一键执行 LLT 和 HLT 测试用例。本文介绍如何用case_config.cfg配置文件的三种方式——git、url、cjpm——自动下载第三方动态库免去手动拉库、配路径的繁琐操作。为什么需要自动下载第三方库跑仓颉测试用例时如果你的用例依赖了第三方动态库.so/.a/.cjo等通常要手动做三件事找到库的下载地址拉取到本地把库目录加进编译链接路径-L、-l把.cjo包导入路径加进--import-path。TPC-Test-Framework 把这三步全部自动化了只要在测试目录放一份case_config.cfg脚本执行测试前就会自动下载、编译、链接第三方库运行时会打印实际使用的 cjc 编译命令方便排查。快速上手放置配置文件先克隆仓库git clone https://gitcode.com/Cangjie-TPC/TPC-Test-Framework把ci_test目录复制到你的测试项目中需与src同级然后在test/LLT/或test/HLT/目录下新建case_config.cfg。配置文件对所在目录下所有用例生效目录里没有配置文件就不会做任何外部库处理。[external_libs] mylib git:https://gitcode.com/Cangjie-TPC/somelib.git,master下载后的库统一存放在test/libs/目录自动加入-L/-l链接选项扫到的.cjo文件会自动加入--import-path。三种下载方式详解1. git 方式直接克隆仓库取库适合库以源码仓库形式发布、且仓库里已经带现成库文件的场景。[external_libs] mylib git:https://gitcode.com/Cangjie-TPC/somelib.git,master格式为key git:仓库地址,分支名分支可省略默认master。脚本会执行git clone -b 分支 --depth1浅克隆仓库然后扫描其中的.so/.a/.dylib/.dll/.lib文件添加到链接路径.cjo文件添加到--import-path。实现见 ci.py。2. url 方式直接下载现成文件适合你手上只有一个.so或.zip包下载链接的场景最轻量。[external_libs] mylib2 url:https://example.com/libmylib.so脚本会把文件下载到test/libs/mylib2/目录如果是.zip包会自动解压并删除压缩包再扫描文件加入链接路径。实现见 ci.py。3. cjpm 方式克隆后用 cjpm 现场编译最强大的方式库仓库里只有源码时自动进入指定子目录执行cjpm update cjpm build把源码现场编译成可用的.cjo和.so。[external_libs] image cjpm:https://gitcode.com/Cangjie-TPC/ci_lib.git,lib_QRCode4cj,src/image/image格式为key cjpm:仓库地址,分支名,子目录路径子目录须指向包含cjpm.toml或module.json的项目根目录。如果子目录不存在比如仓库结构变了脚本会自动搜索仓库中含cjpm.toml的目录作为编译目录。cjpm 方式还有三个贴心设计详见 ci.py✅重复编译保障即使仓库已存在也会重新cjpm build确保.cjo与当前 cjc 版本兼容避免validation of ast file failed报错旧产物清理编译成功后自动清理target/之外的旧预编译产物避免版本冲突和重复链接⚙️运行时路径自动把target/下含.so的目录加入LD_LIBRARY_PATHmacOS 为DYLD_LIBRARY_PATH保证运行时能正确加载动态库。三种方式怎么选方式适用场景脚本实际动作git:仓库里已有现成库文件浅克隆 扫描库文件url:只有一个文件/压缩包链接直接下载.zip自动解压cjpm:仓库里只有源码克隆 cjpm build现场编译一句话建议有现成文件用url仓库带产物用git只有源码才上cjpm。顺带一提其他实用配置段case_config.cfg不仅能配库还支持屏蔽用例和前后置脚本完整示例见 ci_test/README.md[skip] cases test_case1, test_case2 # 逗号分隔执行时跳过 [global_setup] script ./global_setup.sh # 所有用例前跑一次 [pre_setup] test_case1 ./setup.sh # 单用例前置脚本常见问题速答Q改完配置没生效确认文件放在test/LLT/或test/HLT/目录下每个测试目录需要自己的配置并检查ci_test.cfg中[test-home]的目录是否正确参考 ci_test.cfg。Q库下载失败了日志中会打印git clone 失败/下载失败警告多为网络或地址问题cjpm 方式编译失败会提示cjpm build 失败并回退使用仓库已有产物。Q下载逻辑在源码哪里核心函数setup_external_libs位于 ci_test/ci.py配合 ciTest.py 的llt/hlt命令即可在测试流程中自动执行。配好case_config.cfg之后一条ciTest.py llt或ciTest.py hlt就能搞定从拉库到跑用例的全部工作——这就是 TPC-Test-Framework 帮你把环境搭建变成零操作的进阶配置。【免费下载链接】TPC-Test-Framework仓颉用例执行脚本项目地址: https://gitcode.com/Cangjie-TPC/TPC-Test-Framework创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考