C++test使用FAQ
本文原载于www.mytestlife.com,任何转载均需保留源地址。

C++test使用过程中常见问题24个FAQ问答,内容包括:
1. 如何获取Technical Support文件?
2. 使用suppressions (抑制)时,能不能只执行一次suppressions就将该工程该规则引起的违例都抑制掉(不通过配置文件来修改该规则),而不用一个一个的执行suppressions?
3. 对源码的某个函数进行修改后,想重新生成测试用例该怎么操作?直接点“Generate unit tests”仍然是原来的测试用例。
4. 为什么很多工程运行完后,只有行覆盖率呢?
5. 如何设置Compiler?
6. cpptestcli 命令行使用?
7.对于使用makefile的工程如何导入?如何通过BDF导入工程?
8. 构建运行库时找不到make.exe,如何办?
9. Eclipse报告out of memory 错误,如何解决?
10. 如何查看 C++test详细版本信息?
11. RVDS 3.1项目测试时提示找不到目标板怎么办?
12. 请问C++test支持的编译器类型?
13. C++test针对嵌入式Linux的单元测试,将交叉编译构建的可执行文件加载到目标机执行,报告如下错误“cannot find -lcpptestruntime Process exited with code: 1 (error).”,如何处理?
14. 静态分析时如何根据规则危险等级进行选择
15. 如何打开rulewizard模块
16. 如何参考已有静态分析规则
17. 如何切换不同的覆盖率显示
18. 在coverage,c++test或test case explorer面板消失的时候,如何找回
19. 如何获得machine-id及安装license
20. 生成测试用例之后,如何选择性的运行所有测试用例中的几个测试用例
21. 如何获得测试报告
22. 如何获得不同格式的测试报告
23. 如何寻找帮助信息
24. 如何支持vc 2003,2005,2008工程
![]() | 如何获取Technical Support文件? |
![]() | 当使用C++test中发生诸如parse error, linker error之类的错误时,可以启用相关选项,以便C++test能够生成Technical Support文件。相关设置如下:打开菜单C++test -> preference…弹出如下窗口:
选择Console->High,然后选择Technical Support,启用Enable auto-creation of support archives, C++test configuration files, Environmental data, Project properties, Test run data, General application logs, Enable verbose logging,如下图所示:
同时你可以点击浏览指定生产technical support文件存放路径;设置好之后,点击“应用”->“确定”。 |
![]() | 使用suppressions (抑制)时,能不能只执行一次suppressions就将该工程该规则引起的违例都抑制掉(不通过配置文件来修改该规则),而不用一个一个的执行suppressions? |
![]() |
通过以上方式即可屏蔽某一类规则; |
![]() | 对源码的某个函数进行修改后,想重新生成测试用例该怎么操作?直接点“Generate unit tests”仍然是原来的测试用例。 |
![]() |
|
![]() | 为什么很多工程运行完后,只有行覆盖率呢? |
![]() |
将默认设置做了修改,这样的设置可以使得单元测试的执行速度更快。 如果希望得到其他覆盖率,请做如下设置:C++test->Test Configurations,弹出窗口中选择 Builtin -> Unit Testing -> Run Unit Tests, 右键点击该配置,选择Duplicate拷贝该配置到User-defined,如图:
选中该配置,点击右边Execution面板,C++test -> General -> Instrumentation mode选择Full,然后点 击Apply -> Close,重新选择该配置执行单元测试,如图:
|
![]() | 如何设置Compiler? |
![]() |
弹出的窗口中选择C++test->Build Settings,如下图:
点击Browse选择相应的编译路径,然后点击”Apply” -> “OK” |
![]() | cpptestcli 命令行使用? |
![]() |
#include <iostream> 使用cpptestscan生产bdf文件: 命令: cpptestscan --cpptestscanOutputFile=test.bdf --cpptestscanProjectFile=testPrj g++ test.cpp 在该文件生成下面的test.bdf: ------- cpptestscan v.7.1.3.23 ------- |
![]() | 对于使用makefile的工程如何导入?如何通过BDF导入工程? |
![]() |
程序的的架构,包括编译的选项,链接选项等的一个文件,利用此文件C++test可以导入整个工程; 二、 Build Data File的用法: ifeq ($(BUILD_MODE), PARASOFT_CPPTEST) 三、 Build Data File的注意事项: 四、 生成bdf及导入步骤举例:
"CXX=g++ " I think you can understand it, actually we only add a condition decision, if BUILD_MODE equal to PARASOFT_CPPTEST, it will use the CXX variable “:\Program Files\Parasoft\C++test7.1\cpptestscan.exe' --cpptestscanOutputFile=./cpptestscan.bdf --cpptestscanProjectName=MyProject g++”,
cpptestscan --cpptestscanOutputFile=test.bdf --cpptestscanProjectFile=testPrj g++ test.cpp
之后点击 finish;就可以导入项目; |
![]() | 构建运行库时找不到make.exe,如何办? |
![]() |
如果在构建运行库时找不到make程序,一般可能由于: |
![]() | Eclipse报告out of memory 错误,如何解决? |
![]() | 安装C++test后,导入他们的工程,由于该工程非常大,产生out of memory错误; -showsplash 改为: -showsplash |
![]() | 如何查看 C++test详细版本信息? |
![]() | 请提供客户的C++test详细版本信息,Help ?C About Parasoft C++test,点击Parasoft图标, 即可查看详细版本号,如下图:
|
![]() | RVDS 3.1项目测试时提示找不到目标板怎么办? |
![]() | 如果在执行单元测试时,发现找不到目标板,请参看C++ test对“RVDS3.1测试流程.doc”之9.自定义测试 流程章节;请务必保证测试流程中的目标板名称是否与RVDebuger中定义的名称一致; |
![]() | 请问C++test支持的编译器类型? |
![]() | 由于C++test支持企业级应用测试和嵌入式测试,因此对于编译器的支持分为:
|
![]() | C++test针对嵌入式Linux的单元测试,将交叉编译构建的可执行文件加载到目标机执行, 报告如下错误“cannot find -lcpptestruntime Process exited with code: 1 (error).”,如何处理? |
![]() | 该问题可通过修改客户自定义编译器中的一个脚本文件来解决,首先客户需要找到自定义编译器脚本路径位置, 一般位于当前工作空间的: <workspace>\.metadata\.plugins\com.parasoft.xtest.checkers.eclipse.core.cpp\compilers 目录下: “D:\Parasoft\cpptest\workspace\.metadata\.plugins\com.parasoft.xtest.checkers.eclipse.core.cpp\compilers” 打开compilers目录下的自定义编译器的目录,如图:
编辑gui.properties文件,找到“-lcpptestruntime”,移除该选项。然后重新启动C++test, 重新构建可执行对象,并将该对象在目标机上执行。 目标机同一位置,执行该文件;) |
![]() | 静态分析时如何根据规则危险等级进行选择 |
![]() | 1\ c++test菜单->test configurations
|
![]() | 如何打开rulewizard模块 |
![]() | 1\ 可以在test configuration对话框的static面板下,点击new按钮
|
![]() | 如何参考已有静态分析规则 |
![]() | 在test configuration对话框的static面板下,选择一条规则,点击右键,可以看到
通过view rule document即可察看对应规则的文档,通过view rule in rulewizard即可在rulewizard中打开对应规则 |
![]() | 如何切换不同的覆盖率显示 |
![]() | 在coverage面板下,最右方的小向下箭头上点击即可
这样,如果运行测试用例的时候,计算了对应的覆盖路的话,即可通过不同的选择项,察看不同的覆盖率信息 |
![]() | 在coverage,c++test或test case explorer面板消失的时候,如何找回 |
![]() | 在c++test菜单项中,show view下的tasks项,即可打开c++test面板;coverage项即可打开coverage面板,等等
|
![]() | 如何获得machine-id及安装license |
![]() | 在c++test菜单项下,找到preferences,点击打开preferences对话框,点击左边license结点,即可在右边看到local license下的machine-id项。
|
![]() | 如何支持vc6的工程 |
![]() | vc6工程使用cpptest标准独立版本支持,客户机器上需要安装有非绿色版本的vc6程序,且保证vc6工程可以编译通过。
之后,定位到对应待导入工程的dsp/dsw文件,即可。 |
![]() | 如何支持vc 2003,2005,2008工程 |
![]() | 支持vc 2003,2005,2008工程,需要使用cpptest针对不同ide的插件版本即可。功能与标准独立版本没有任何区别 |
![]() | 生成测试用例之后,如何选择性的运行所有测试用例中的几个测试用例 |
![]() | 打开test case explorer面板,展开对应工程的树状结点,选择需要运行的测试用例,点击右键,使用test using下的对应的配置运行测试用例即可。
|
![]() | 如何获得测试报告 |
![]() | 测试完成之后,打开test progress面板,点击最右边的小按钮“generate report”,即可打开对应report面板,可以指定存放报告地址,点击ok即可
|
![]() | 如何获得不同格式的测试报告 |
![]() | 打开report面板之后,可以点击preferences按钮,打开对应报告配置对话框:
选择对应的report format即可。 |
![]() | 如何寻找帮助信息 |
![]() | 点击菜单项help->help contents,打开帮助菜单对话框,可在search中输入对应关键字,搜索帮助
|
































很有用,谢谢!