提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2015-12-10 14:17:56.000|阅读 992 次
概述:关于Parasoft C / C ++test的嵌入式单元测试实践,本文主要介绍了单元测试的脚本配置,堆和栈设置。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
uVision4和ULINKPro的内置测试流程定义对执行流程变量的作用:
名称 | 默认值 | 描述 |
uVision项目 可执行文件的位置 | ${uvision:project_executable} | 自动扩展到uVision项目构建的产品文职(一般可执行文件)。这个变量是用于替换C++test生成的原始测试可执行文件。 |
uVision项目的项目文件 | ${uvision:project_file} | 自动扩展uVision项目文件的位置。这个变量是用于启动uVision和所生成的调试脚本来执行自动测试。在典型情景中, 不应该修改该变量。 |
uVision IDE可执行文件 | Uv4.exe | uVision IDE可执行文件的位置。它是执行自动化测试所必须的。如果C++test没有自动检测,需要用户手动指定。 |
uVision项目目录 | ${uvision:project_ directory} | 自动扩展到uVision项目目录的位置。这是C++test生成的调试脚本的默认存储位置。 |
uVision项目目标 | ${uvision:project_ target} | 自动扩展到uVision项目的当前目标。如果为了测试在uVision中创建了一个特殊的目标,需要手动将其指定为属性值。 |
可执行出口点 | _sys_exit | 这个功能名称或地址被看做是测试执行的端点。C++test的默认配置是从_sys_exit可执行文件中调用的最后一个功能。当运行的测试程序将达到_sys_exit功能时,C++test生成的调试脚本将结束执行的测试。 |
调试脚本模板 | ${cpptest:cfg_dir}/ templates/for_recipes/uvision _ulinkPro_itm.tja | 调试脚本模板的位置。C++test用其生成调试脚本的最终形式(用于uVision执行自动化测试)。它是可以自定义和修改的。它只包含必须部署和运行测试可执行文件的命令。用于源程序的任何开发环境的特殊初始化,都应该添加到这个模板,在最终调试脚本中打印出来。建议将调试模板文件备份(存储在C++test distribution里),默认由该属性标记并放入项目地址中,便于修改。这个调试脚本模板需要修改执行流程属性:${project_loc}/ uvision_ulinkPro_itm.tja |
上文提到,当准备或运行可执行文件时,不标准的项目需要一些额外的工作。这可以通过编辑测试流程定义(test flow definition)来实现。点击“Edit...”,然后再点击“Test execution flow:”下拉菜单。有关编辑“test flow definition”详情,请参考C++test用户指南。
除了完成C++test中的配置之外,我们还需要一些工作。通常情况下,我们需要做以下工作:
C++test使用以下命令行来运行uVision IDE,来自动执行测试可执行文件:
uv4.exe -d <tested project uVision project file> -t <name of the uVision project target>
“-d”选项可以使uVision在调试模式下运行,并执行调试脚本(为目标<name of the uVision project target> 准备)指定的所有命令。为了确保C++test生成的脚本可以使用,需要项目属性中设置脚本路径,如下图:
这种情况下,C++test生成的调试脚本会在uVision项目位置(默认是C++test生成地址)。
为了方便起见,建议添加附加的uVision项目目标,并将调试脚本的路径只设为该目标。使用同一个项目目标进行测试和开发需要你兼顾开发和测试调试脚本。需要注意的是,如果目标只针对测试,需要在C++test测试配置的测试流程属性(test flow propertie)中指定名称。具体方法在前文中有介绍。
单元测试框架会消耗额外的内存,这影响了栈和堆的使用情况。当被测项目设置了免费的堆或堆栈存储器,测试执行可能会由于堆栈/堆不足而导致崩溃。测试框架使用的栈和堆内存的数量取决于很多因素。例如,“工具配置(instrumentation configuration)”、“C++test运行库配置(C++test runtime library configuration)”和“测试案例/存根的代码(code of the test cases and stubs)”。C++test配置中有一些节点可以限制堆栈/堆的消耗。对于简单的项目来说(例如ASR演示程序),我们设置堆栈为0x450,堆为0x900就足够了。
堆和栈内存通常是通过汇编程序启动文件(assembler startup file)进行配置。本例中,为STM32F10x.s。若要修改这些值,,从项目树(project tree)中选择“assembler startup file”,切换到 编辑器窗口,然后选择“配置向导(Configuration Wizard)”选项卡。在配置向导选项卡中,输入栈和堆的值。下图是一个典型的设置:
为确保项目修改后重建,要使汇编程序启动文件生成的对象是最新的。这点很重要,因为C++test要用它构建最终测试可执行文件(C/ C ++源代码生成的对象是由C++test产生的,但汇编文件生成的所有项目是来自源项目)。
购买最新正版授权Parasoft赠送Macbook!""
慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过(12.01~12.31)!!优惠详情点击查看>>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢