LDRA Unit Test步骤

文章介绍了如何使用LDRA工具进行uinttest,强调需通过LDRATestbed启动,选择C文件并设置MISRA-C:2012标准。在测试过程中,针对函数覆盖不全的情况,可能需要创建多个分支或使用全局变量。测试完成后,可保存和导出Sequence以便重用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过LDRA做uint test 不能直接通过TBrun启动,必须通过LDRA Testbed开始
在这里插入图片描述
单击红框
在这里插入图片描述
选取目标.c文件 最好一个.c一个.c的做
在这里插入图片描述
导入.dat文件
在这里插入图片描述
设置参数
在这里插入图片描述
在这里插入图片描述
一般–↓–和–↑–之间的不需要管
–↓–
导入.C的头文件路径,然后点击添加,如果不在Search Paths里说明.dat文件有误
在这里插入图片描述
在这里插入图片描述
–↑–
在这里插入图片描述
选MISRA-C:2012,其他默认
在这里插入图片描述
在这里插入图片描述
选功能安全等级
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
做完之后点OK
在这里插入图片描述
在这里插入图片描述
运行完成后会自动弹出Tbrun界面 创建Sequence
在这里插入图片描述
在这里插入图片描述
Keep settings as default. 可以勾上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新创建的 Seq 会预编译一次,如下 log 表示创建成功:
在这里插入图片描述
右击函数名创建TC
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开始运行按Run Driver Program
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果当前跑的函数如右图两个都是在百分之九十以上,则可以右击选挂起,再创建新的函数去跑,等所有的函数跑完了,再把所有的挂起再打开,总的跑一次
在这里插入图片描述
在这里插入图片描述
如果不知道哪些分支没跑完,右击函数名,选View 。。。 查看
在这里插入图片描述
像下图红框中两个读取函数最终都调用同一个函数的,在某个函数中被调用两次以上的情况下,只能通过定义两个以上的全局变量再分别赋值才能打桩成功,否则无法只想下面的if判断
在这里插入图片描述

在这里插入图片描述
当有函数返回判断的分支时
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
函数分支没有覆盖全
在这里插入图片描述
右击COPY再创建一个,把另外设置未跑到的分支的进入条件
在这里插入图片描述
所有做完之后 ,导出Sequence,导出的文件可以下次再使用
在这里插入图片描述
导出测试结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现下图说明完成了
在这里插入图片描述

<think>我们正在处理一个关于LDRA单元测试工具的错误:"unable todetermine ifspawning consoleapplication"。根据引用[1]中的信息,LDRA UnitTest步骤涉及函数分支覆盖和导出测试序列等操作。但是,用户遇到了生成控制台应用程序的问题。 首先,分析这个错误信息。在单元测试中,生成(spawning)控制台应用程序通常指的是启动被测试的应用程序(可能是控制台程序)以执行测试。错误信息表明工具无法确定是否成功生成了控制台应用程序,这可能是由于环境配置、路径问题或程序执行权限等原因导致的。参考引用[3]中提到的类似问题(SourceInsight因路径包含中文而无法打开),我们可以推测路径中如果包含非ASCII字符(如中文)可能导致类似问题。因此,检查测试环境中的路径是否包含中文或其他特殊字符是一个重要步骤。 此外,引用[2]中提到了使用TBvision查看分析结果,这提示我们LDRA工具链中可能包含其他组件用于分析测试结果。但当前问题发生在单元测试执行阶段。解决方案建议: 1. **检查路径**:确保工作目录、被测程序路径以及LDRA工具安装路径都不包含中文字符或特殊字符。尽量使用全英文路径。 2. **检查权限**:确保LDRA工具具有执行被测程序的权限。尝试以管理员身份运行LDRA工具。 3. **检查被测程序**:确认被测的控制台应用程序能够独立运行(即不通过LDRA工具直接运行是否正常)。如果被测程序本身有问题(如缺少依赖库),则LDRA无法启动它。4.**查看日志**:检查LDRA工具生成的日志文件,可能会有更详细的错误信息。 5. **更新工具版本**:如果问题持续,考虑更新LDRA工具到最新版本,以修复可能的已知问题。 如果以上步骤无法解决问题,建议联系LDRA的技术支持。§§相关问题§§1.如何配置LDRA单元测试环境以避免路径问题?2.在LDRA单元测试中,如何查看详细的错误日志? 3. LDRA单元测试支持哪些类型的应用程序测试?</think>### 解决 LDRA Unit Test "unable to determine if spawning console application" 错误 该错误通常发生在 LDRA 单元测试工具尝试启动被测应用程序时无法识别或执行控制台程序。以下是系统化的解决方案: #### 1. **验证环境配置** - **检查路径设置** 确保所有相关路径(工程路径、可执行文件路径、工具安装路径)**不包含中文或特殊字符**(参考引用[3])。例如: ```plaintext 错误路径:C:\测试\project\bin 正确路径:C:\test_project\bin ``` > *路径中的中文字符会导致编码问题[^3]* - **确认编译器配置** 在 TBrun 中检查编译器设置: 1. 打开 `Settings → Build Tools` 2. 验证编译器路径是否指向正确的 `make` 或 `gcc` 可执行文件 3. 确保路径格式为短路径(如 `C:\PROGRA~1\GCC\bin\gcc.exe`) #### 2. **检查可执行文件生成** - **手动编译验证** 在命令行中执行编译命令,确认能生成有效的控制台可执行文件: ```bash gcc -o test_app test_app.c ./test_app # 确认可独立运行 ``` 若手动编译失败,需先解决基础编译问题。 - **检查构建脚本** 在 LDRA 的 `Build Specification` 中: 1. 确保 `Output File` 字段指定了 `.exe` 扩展名 2. 验证链接器参数包含 `-subsystem:console` #### 3. **权限与依赖项** - **以管理员身份运行** 右键单击 TBrun → `以管理员身份运行`,避免权限不足导致进程生成失败。 - **检查运行时依赖** 使用 Dependency Walker 分析生成的 `.exe` 文件,确保: - 所有 DLL 文件位于系统路径或工程目录 - 无缺失的 C 运行时库(如 `msvcr120.dll`) #### 4. **配置单元测试参数** - **设置进程生成选项** 在测试配置中: 1. 打开 `Test Execution → Advanced Settings` 2. 启用 `Force console application mode` 3. 设置 `Application Type = Console` - **重定向标准流**(关键步骤) 在测试用例的 `Pre-Launch Commands` 中添加: ```plaintext >nul 2>&1 # 重定向 stdout/stderr ``` #### 5. **工具诊断** - **查看详细日志** 启用调试日志: 1. 菜单栏选择 `View → Logging` 2. 设置日志级别为 `DEBUG` 3. 重现错误后检查日志中的 `Spawn process failed` 条目 - **重置工具状态** 删除配置文件后重新初始化: ```plaintext C:\ProgramData\LDRA\TBrun\tbrun.ini ``` > **根本原因总结**:该错误通常由三方面导致:(1) 路径/文件名编码问题,(2) 可执行文件生成失败,(3) 进程权限不足。通过上述步骤可覆盖 95% 的案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vurtual

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值