Thanks to visit codestin.com
Credit goes to gitcode.com

TPC-Test-Framework:基于 Python 的测试框架项目

仓颉用例执行脚本

分支2Tags2
文件最后提交记录最后更新时间
同步脚本代码10 天前
[doc]: 许可证修复1 年前
1.修改使用说明文档7 个月前

TPC-Test-Framework

纯仓颉项目LLT和HLT用例执行脚本

脚本执行环境限制

  • 脚本支持的python版本 3.8.*-3.10.*

使用脚本前, 需要了解 Cangjie 编译流程和编译命令执行.

main.py 调用

  • 需要保持目录解构
├── ci_test         当前ci_test复制到这个位置
├── src             测试项目的原码目录
└── cjpm.toml       测试项目的配置文件
  • 调用时使用pyhton3 ./ci_test/main.py [option] ...

ciTest.py 命令调用

  • 需要将ciTest.py 设置到环境变量.
    • windows 环境 需要将ciTest.py的路径设置到 高级环境变量设置PATH
    • linux 环境 需要将ciTest.py的路径设置到PATH
  • windows调用时使用pyhton3 ciTest.py [option] ...
  • linux调用时使用ciTest.py [option] ...

main.py 和 ciTest.py 调用方式区别

执行目录要求不同

  • main.py 方式 必须将ci_test放在和src文件夹同级. 执行时需要在 cjpm.toml 同级目录中执行
  • ciTest.py 方式, 无需考虑目录存放位置, 但必须设置在 PATH 环境变量里, 执行时需要在 cjpm.toml同级目录中执行

环境变量设置不同

  • main.py 无需设置环境变量.
  • ciTest.py 必须设置到 PATH 环境变量中

支持纯仓颉项目编译

普通编译

ciTest.py build --cj-home=cjc环境目录 # 第一次编译会提醒, 之后可以直接使用 ciTest.py build

覆盖率统计时编译

ciTest.py build --coverage

支持LLT测试

LLT用例特殊标识

  • // EXEC: 执行命令
  • // DEPENDENCE 依赖测试文件相对路径
  • // RESOURCES 依赖测试文件绝对路径, 项目/test/resources

例如: 请查看 LLT用例

测试命令

ciTest.py llt

覆盖率测试命令, 前提编译时带有 coverage 才生效

ciTest.py llt --coverage

单跑一条LLT用例测试命令(匹配用例名)

ciTest.py llt --case=xx.cj  # .cj 可以省略

指定测试目录跑

ciTest.py llt --path=./test/LLT/abc

支持HLT测试(cjtest命令)

HLT用例特殊标识

  • // 3rd_party_lib:三方库目录1:三方库目录2:标记依赖的三方库so所在目录,与conf.cfg文件中3rd_party_root字段配合使用组合成绝对路径。多个三方库目录用:分隔,或添加多行// 3rd_party_lib:
  • // macro-lib:marco1.so:marco2.so:标记依赖的宏定义的动态库文件,与conf.cfg文件中3rd_party_root字段配合使用组合成绝对路径。多个宏动态库文件用:分隔,或添加多行// marco-lib:
  • // data_file:数据文件1:数据文件2:当用例中需要读取其他数据文件时添加,需为测试脚本所在相对目录。多个数据文件用:分隔,或添加多行// data_file:
  • // run_option:选项1 选项2:当用例运需要增加特殊运行时选项时添加,多个选项用:空格分隔,或使用多行// run_option:
  • // dependence:文件a 文件b:当用例依赖其他cj文件时添加,使用相对于用例的相对路径,多个文件用:空格分隔,或使用多行// dependence:
  • // source_file:文件a 文件b:绝对路径数据文件1:绝对路径数据文件2:当用例中需要读取其他数据文件时添加,需为测试脚本所在相对目录。多个数据文件用:分隔,或添加多行// source_file:`

例如: 请查看 HLT用例

测试命令

ciTest.py hlt

覆盖率测试命令

ciTest.py hlt --coverage

单跑一条LLT用例测试命令(匹配用例名)

ciTest.py hlt --case=xx.cj  # .cj 可以省略

指定测试目录

ciTest.py hlt -p=./test/HLT/abc

支持benchmark测试

测试命令

ciTest.py bench -p ./test/bench

测试命令 在cjtest仓库时

ciTest.py bench -p ./test/bench --cjc=0.39.7

支持覆盖率直接生成

ciTest.py coverage

若仓颉版本0.60.*以上时需要注意stdx文件夹配置

  • 注意: 以linux x86_64环境为例, 将cangjie-stdx-linux-x64-0.60.5.1.zip解压仓颉环境目录下linux_x86_64_llvm
  • 若未下载 stdx 环境, 脚本会自动为您在仓颉环境中下载stdx依赖包.

仓颉环境已经配置情况下, 需要配置stdx文件夹路径.

// 已经设置好的Cangjie环境目录, 注意stdx包解压的位置
├── bin
├── envsetup.sh
├── lib
├── modules
├── README.md
├── runtime
├── linux_x86_64_llvm    // linux_x86_64_llvm 文件夹放在这里即可
├── third_party
└── tools

开源协议

Apache License Version 2.0

参与贡献

欢迎给我们提交PR,欢迎给我们提交Issue,欢迎参与任何形式的贡献。

项目介绍

仓颉用例执行脚本

定制我的领域