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

标签 c testing parasoft

我正在尝试使用 Parasoft C/C++ 测试通过静态测试检查“编码标准”。我在 Parasoft 用户指南中只找到“如何在 Makefile 项目中创建 bdf”部分。

如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?

最佳答案

Thanks for your answer, parasoft is not a reputed topic. Answers are worth a piece of gold. I couldn't find cpptesttrace. There are cpptest and cpptestscan. Could they be? I use an old version of parasoft.

你是对的。 “cpptesttrace”已添加到 Parasoft C++test 9.4 版(2012 年中),因此您可能使用的是 9.2 或更早版本,其中仅存在“cpptestscan”。

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

  • cpptest - 启动 C++ 测试 GUI(基于 Eclipse),通常用于桌面上的交互式工作
  • cpptestcli - 用于自动化静态分析的 C++ 测试命令行驱动程序,例如作为 Jenkins 作业运行,
  • 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 或构建脚本足够灵活以允许在命令行覆盖编译器,则 cpptestscan 很好,例如

make CXX="cpptestscan g++" CC="cpptestscan gcc"

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

回到本文最初的问题,如果您有多个项目:

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

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

关于c - 如何在 Parasoft 中创建构建数据文件 (bdf)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46189980/

相关文章:

计算Windows C中文件的行数

时间:2019-03-08 标签:c++parasofterror

c - 如何修复 Parasoft 检查的错误

angular - 失败 : Template parse errors: Angular 2

java - 无法使用 parasoft soatest 找到用于 Web 服务自动化的 jar 文件soaptest.api

使用堆栈检查字符串是否为回文

c++ - 我的动态数组在 free() 时有 SIGSEGV,但可以访问吗?

转换后比较指针值,还是一样相等?

ruby - 在测试永无止境的流程时,如何从测试中停止流程?

cocoa - 我如何测试客户如何使用我的 Cocoa 应用程序?