You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

寻求通过命令行实现C代码TPT测试的编译、执行与报告生成的解决方案

寻求通过命令行实现C代码TPT测试的编译、执行与报告生成的解决方案

我之前也碰到过TPT命令行工具不好使的情况,特别懂你这种明明按文档敲了命令却没动静、连语法错误都没提示的烦躁!结合我踩过的坑,给你梳理下靠谱的实操步骤和排坑点:

一、先搞懂TPT命令行的核心逻辑

TPT的命令行工具(Windows下是TPT.exe,Linux对应同名可执行文件)有个最容易被忽略的前提:必须用-p参数明确指定要操作的TPT项目路径,不然命令根本不知道要处理哪个项目,这也是很多人命令没反应的头号原因!

基础调用格式是:

TPT.exe -p <你的项目路径.tpt> <具体操作参数>

二、分步实现编译、执行、报告生成

1. 编译关联C代码的TPT项目

如果已经在GUI里配置好C代码的关联(比如编译路径、编译器选项),直接用-compile参数就能触发编译:

TPT.exe -p MyTestProject.tpt -compile

要是需要临时加C编译参数(比如头文件路径、宏定义),可以用-cflags补充:

TPT.exe -p MyTestProject.tpt -compile -cflags "-I./include -DDEBUG=1"

你说批处理没反应?先检查这俩点:一是TPT.exe的路径有没有写全(没加系统环境变量的话要写绝对路径,比如"C:\Program Files\TPT\bin\TPT.exe");二是项目路径有没有空格,有空格必须用双引号括起来!

2. 执行测试用例

编译通过后,用-run执行整个项目的测试,或者用-run-testcase指定单个用例:

# 执行全部测试用例
TPT.exe -p MyTestProject.tpt -run

# 执行指定的单个测试用例
TPT.exe -p MyTestProject.tpt -run-testcase "TestCase_MemoryCheck"

如果需要指定GUI里配置好的执行环境,加-execution-config参数:

TPT.exe -p MyTestProject.tpt -run -execution-config "MyCExecutionConfig"

3. 生成测试报告

执行完成后用-report参数生成报告,支持HTML、PDF等格式,还能指定输出目录:

# 生成HTML格式报告到指定目录
TPT.exe -p MyTestProject.tpt -report -format html -output-dir "./test_reports"

# 生成包含覆盖率数据的PDF报告
TPT.exe -p MyTestProject.tpt -report -format pdf -output-dir "./test_reports" -include-coverage

三、解决你遇到的“无反馈/语法错误不提示”问题

  • -verbose参数强制输出详细日志,哪怕编译失败也能看到具体错误:
TPT.exe -p MyTestProject.tpt -compile -verbose
  • 先在GUI里验证项目能不能正常编译执行!命令行是依赖GUI里的基础配置的,如果GUI里都跑不起来,命令行肯定也不行。

四、整合为一键批处理

把所有步骤写到一个批处理文件里,就能一键完成全流程:

@echo off
set TPT_PATH="C:\Program Files\TPT\bin\TPT.exe"
set PROJECT_PATH=.\MyTestProject.tpt
set REPORT_DIR=.\test_reports

echo 开始编译TPT项目...
%TPT_PATH% -p %PROJECT_PATH% -compile -verbose
if errorlevel 1 (
    echo 编译失败!请查看日志
    pause
    exit /b 1
)

echo 开始执行测试用例...
%TPT_PATH% -p %PROJECT_PATH% -run -verbose
if errorlevel 1 (
    echo 测试执行失败!
    pause
    exit /b 1
)

echo 开始生成测试报告...
%TPT_PATH% -p %PROJECT_PATH% -report -format html -output-dir %REPORT_DIR%
echo 报告已生成至%REPORT_DIR%
pause

内容来源于stack exchange

火山引擎 最新活动