如何在Parasoft中创建构建数据文件(bdf)?

时间:2017-09-13 06:05:15

标签: c testing parasoft

我正在尝试使用Parasoft C / C ++ Test来控制静态测试中的“编码标准”。我在Parasoft用户指南中找到了“如何在Makefile项目中创建bdf”。

如何为每个项目创建bdf?是否强制使用makefile项目?

2 个答案:

答案 0 :(得分:3)

  

感谢您的回答,寄生虫不是一个知名的话题。   答案值得一块金子。我无法找到cpptesttrace。   有cpptest和cpptestscan。他们可以吗?我使用旧版本的parasoft。

你是对的。 ' cpptesttrace'在Parasoft C ++测试版本9.4(2012年中)中添加了,因此您可能正在使用9.2版或更早版本,其中只有' cpptestscan'在场。

顺便说一句,这里是C ++独立安装(不是Visual Studio插件)中程序的快速解释:

  • cpptest - 启动C ++测试GUI(基于Eclipse),通常用于桌面上的交互式工作
  • cpptestcli - 用于自动执行静态分析的C ++测试命令行驱动程序,例如:作为詹金斯的工作,
  • cpptestscan - 用作编译器命令行的前缀,以捕获单个编译信息并将其添加到BDF文件中
  • cpptesttrace - (自Parasoft C ++ test 9.4)用作构建命令行的前缀,捕获所有编译命令并保存在BDF文件中

cpptestscan和cpptesttrace之间的主要区别在于:

  • 必须在每个编译命令行之前添加cpptestscan。这意味着,cpptestscan只能捕获单个编译,并一次一个地保存到BDF中。这通常通过覆盖make CC或CXX变量来完成(指定编译器,例如" cpptestscan g ++ -c foo.c -o foo.o")。
  • cpptestrace旨在为整个构建命令添加一次,并跟踪构建命令调用的子进程。被识别为编译器调用的所有进程的记录都存储在BDF中。
如果makefile或构建脚本足够灵活,允许在命令行覆盖编译器,那么<​​p> cpptestscan就可以了,例如

select round(24*(sysdate - to_date('18-09-18 06:30','YYYY-MM-DD HH24 Mi'))) as Hours_Diff 
from Dual;

通常可以使用基于make的项目。从自定义或自动生成的构建脚本开始,所有投注均已关闭。通常,唯一的选择是修改项目构建脚本,人们通常会对此感到紧张。 在这种情况下,cpptesttrace可以提供帮助,因为它完全是非侵入式的,并且可以从几乎任何构建过程中捕获构建信息。

如果你有多个项目,请回到这篇文章的原始问题:

  • 使用cpptestscan,你需要以某种方式在每个项目中使用cpptestscan前缀编译器&#39;构建脚本以创建相应的BDF
  • 使用cpptesttrace,您可以为每个项目运行构建,在每个项目前添加cpptesttrace&#39; build命令用来创建相应的BDF 后者通常更容易,但您需要更新的C ++测试(最新版本是10.3)。

我希望有所帮助。 顺便说一句:如果你可以升级你的C ++测试,请与Parasoft联系。

答案 1 :(得分:0)

使用make文件不是必需的。 Parasoft C ++测试有一个名为“ cpptesttrace ”的工具,它监视构建过程并收集编译器调用以创建BDF文件。
cpptesttrace可以与任何构建过程一起使用,无论是make,shell脚本,还是在IDE中构建(如果没有可用的命令行构建,最后的手段)。

cpptesttrace的工作原理:

  • 你只需要在原始构建命令行前加上'cpptesttrace',也许还有几个选项,然后运行你的正常构建
  • 确保运行完全重建(例如'make clean all')以确保BDF包含有关属于您的构建的所有源的信息,以及它们的编译方式
  • cpptesttrace有一组内置的受支持编译器,您可以通过运行'cpptesttrace --cpptesttraceHelp'来查看编译器可执行模式。如果您的GNU GCC编译器名称是“异常”,您可以重新定义cpptesttrace正在寻找的模式。
  • 如果遇到问题,您可以随时联系Parasoft支持小组

示例1:

我将给出一个make文件示例:),但它可能是scons,jam或Python脚本,或.bat: 假设,我的完整构建完成如下:

 make clean all

我可以使用cpptesttrace运行构建如下:     cpptesttrace让所有人都干净利落 这将监视整个构建并从运行中创建一个BDF文件。

示例2:

如果您的构建是使用脚本的多级进程或沿途更改文件夹,那么告诉cpptesttrace BDF的绝对位置可能会更好。扩展上面的例子,我们可以运行:

cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf  make clean all

这将确保BDF路径是绝对的,无论在哪个源树级别调用cpptesttrace。