本主题可帮助您解决 C/C++test 可能遇到的问题。
一般
分析哪些文件?如何分析头文件?
C/C++test 直接分析 C/C++ 源文件,间接分析头文件。根据当前选择,C/C++test 将分析所有 C/C++ 源文件,并报告所选内容中所有源文件和头文件的违规情况(仅针对源文件包含的头文件)。
示例:
- 如果选择了项目根目录,则将分析所有源文件(和间接头文件)。
- 如果选择了一个源文件,则仅分析该文件(不分析头文件)。
- 如果选择了单个源文件和单个头文件,则将分析源文件(以及头文件(如果源文件包含))。
- 如果仅选择了头文件,则 C++test 将跳过分析(不直接分析头文件)。
如何修改 C/C++test 测试控制台的详细程度?
选择 Parasoft> 首选项, 选择 控制台 然后选择所需的详细程度(高,正常,低)。
高详细度 | 正常详细度 | 低详细度 | |
---|---|---|---|
有关当前 步骤名称和状态的基本信息(完成,失败,最新) | Yes | Yes | Yes |
错误 | Yes | Yes | Yes |
警告 | Yes | No | No |
命令行 | Yes | Yes | No |
在静态分析和单元测试执行期间打印出违规 情况 | Yes, full-format | Yes, short-format | No |
如果 C/C++test 内存不足怎么办?
为防止 C/C++test 内存不足,请将内存参数添加到用于启动 C/C++test 的脚本或快捷方式中。这两个参数是 JVM(Xms) 的初始大小和 JVM (Xmx) 的最大大小。通常,两者都设置为相同的大小(例如,1024MB)。但是,如果您偶尔遇到问题,但又不想始终分配大量内存,则可以将参数设置为不同的大小(例如,初始大小为 1024Mb,最大大小为 1400MB)。您可以设置的最大大小取决于您的 OS 和 JVM。
示例:
独立的 C/C++test : cpptest.exe -J-Xms1024m -J-Xmx1400m
Eclipse 的 C/C++test 插件: eclipse.exe -vmargs -Xmx1400m
-Xmx
设置的值,使用 CPPTEST_ENGINE_EXTRA_ARGS 选项自定义分配的内存量。 当您执行静态分析或将结果报告给 DTP 时,这可能特别有用。有关详细信息,请参见配置高级选项。如何调整连接超时?
如果您怀疑问题是由网络或连接问题引起的,则可能需要尝试通过将以下 switch 添加到 JVM 来调整超时:
Switch | 说明 | 示例 |
---|---|---|
parasoft.ws.timeout | 设置所有服务的套接字超时。值以秒为单位 | -Dparasoft.ws.timeout=60 |
parasoft.ws.connection.timeout | 设置所有服务的连接超时。值以秒为单位 | -Dparasoft.ws.connection.timeout=15 |
parasoft.tcm.timeout | 设置团队服务器服务的超时。它可以仅为此服务设置超时,也可以覆盖常规 parasoft.ws设置的值(以秒为单位)。 | -Dparasoft.tcm.timeout=30 |
如果仅设置了parasoft.ws超时,则将同时影响套接字和连接超时。
如果遇到问题,应将什么信息发送给 C/C++test 支持团队?
请参见准备支持存档。
安装
如何知道自己安装了哪个版本的 C/C++test?
要检查当前安装了哪个版本的 C++test:
- 选择 帮助> 关于 Eclipse (对于插件) 或 帮助> 关于 Parasoft C/C++test (对于独立版本)。
- 点击 Parasoft 按钮。打开【关于功能】对话框将。
- 在功能表(“版本”列)中查看 C/C++test 版本。
如果没有正确(重新)安装 C++test 怎么办?
尝试使用-clean
选项启动 Eclipse(一次)。这将强制刷新内部(Eclipse)注册表/缓存。
安装了 C/C++test 插件后,为什么 Eclipse 在启动时崩溃?
因为它无法写入安装目录中保留配置文件的位置。当 Eclipse 设置为让多个用户共享一个安装区域时,此情况很常见。为防止这种情况,请将配置文件存储在主目录中(有关如何执行此操作的详细信息,请参见其他要求中的第一个 bullet)。
如何防止机器码浮动?
网络环境的变化可能会影响用于计算机器码的接口,并导致机器码不稳定。您可以使用 PARASOFT_SUPPORT_NET_INTERFACES 环境变量来指定稳定的接口并防止机器码浮动。
- 设置 PARASOFT_SUPPORT_NET_INTERFACES 环境变量。
将变量值设置为稳定的以太网接口。不要使用虚拟,临时或环回接口。
- 在 Windows 上:将该值设置为您的网卡的 MAC 地址。您可以使用ipconfig -all
命令获取地址。 示例:SET PARASOFT_SUPPORT_NET_INTERFACES=00-10-D9-27-AC-85
- 在 Linux 上: 将值设置为 "inet” 或 "inet6” 系列的网络接口之一。您可以使用
ifconfig
命令获取可用接口的列表。示例:export PARASOFT_SUPPORT_NET_INTERFACES=eth1
如果问题仍然存在,可以通过设置环境变量 PARASOFT_DEBUG_NET_INTERFACES 并将其值设置为 true 来获取诊断信息。这会将可以与技术支持共享的检查过程以及用于计算机器码的界面打印到标准输出中。该接口将标有 [SELECTED] 前缀。
为什么在 C/C++test 测试升级到新版本后,DTP 上不再有一些规则的抑制?
与版本之间报文变更的规则相关联的抑制可能在 DTP 上不可用,并且必须重新抑制这些规则。
您可以通过配置以下高级选项为 10.4.1 版和更高版本中的 BD 类别规则还原旧报文(请参见配置高级选项):
CPPTEST_ENGINE_EXTRA_ARGS="-property flowanalysis.legacy.messages.for.<rule_ID>=true"
示例:
CPPTEST_ENGINE_EXTRA_ARGS="-property flowanalysis.legacy.messages.for.BD.PB.ARRAY=true -property flowanalysis.legacy.messages.for.BD.PB.ZERO=true"
若要成功还原旧报文,请确保从以下位置删除包含本地 C/C++test 缓存数据的 .cpptest 文件夹:<workspace_location>/.cpptest/.dtpengine/.cpptes
t.
如何导入 C++test 6.x 测试配置?
测试与分析
如果未自动检测到编译器系列怎么办?
请确保已为给定的编译器正确配置了环境,在启动 Eclipse 之前(包括,$PATH, $LD_LIBRARY_PATH etc。)
如何使用 Microsoft Visual C++ 编译器?
Visual C++ 6.0
如 从Visual Studio 6.0项目创建C ++ test项目:中所述,导入项目
其他 Visual C++ 版本
对于其他版本的 Microsoft Visual C++,请使用“Visual Studio 命令提示符”实用程序脚本(由 Visual Studio 安装提供)来打开带有 Visual Studio 环境的控制台。然后,从该控制台启动 Eclipse 以确保正确配置了环境。请注意,C++test 也可以作为 Visual Studio 2005 和更高版本的插件使用。
“无法打开 .pathtoeclipse 文件”报文是什么意思(当启动 cpptestcli 时)?
使用 extinstall
实用程序安装 C++test 时,将自动创建 .pathtoeclipse
文件。该文件包含 Eclipse 安装的位置。如果文件丢失(如上述消息所示),请通过创建一个简单的文本文件来手动添加它,并在 Eclipse 位置添加一行,然后将其另存为 <C++test_install_dir>/.pathtoeclipse
。
可以使用命令行工具 (cpptestcli) 创建一个项目吗?
Yes。请参见使用现有构建系统创建项目。
如果 C/C++test 测试无法使用调试单元测试测试配置执行测试用例怎么办?
如果您调试使用 Visual Studio 2019 附带的 Microsoft Visual C++ 14.2 编译器编译的代码,请在调试之前启动 Visual Studio 2019 IDE,并确保它在后台运行,直到 C/C++ 测试运行结束。
如果 C/C++test 在静态分析期间报告超时,该怎么办?
为确保分析完成,您可以执行以下操作之一:
- 通过配置以下高级选项来增加超时限制:
cpptest.analyzer.source.timeout=<TIMEOUT_IN_SECONDS>
请参见 配置高级选项。
- 禁用测试配置中最耗时的规则或指标。有关时间的信息包含在控制台和报告中显示的超时消息中。
- 联系 Parasoft 技术支持。
报告
如何创建包含激活码标准规则列表的报告?
生成报告时,请指定包含以下条目的报告配置文件:
results.report.active_rules=true
如果某些字符未能在 C/C++test 报告中正确显示怎么办?
由 Parasoft 产品生成的报告需要使用 sans-serif 字体才能在您的环境中使用。如果您的报告无法正确显示某些字符(例如国家字符),请确保在系统上安装了 sans-serif 字体。
在 IDE 中工作
如果 Parasoft 菜单不可用怎么办?
将 C/C++ 或 C++test 设置为当前透视图 (通过选择 窗口> 打开透视图> 其他, 然后从打开的对话框中选择 C/C++或 C++test )。
如果 Eclipse 中的覆盖滚动条在 Linux 上隐藏了某些 C/C++test 的 GUI 元素怎么办?
由于某些 Eclipse 版本中的错误,覆盖滚动条可能会部分隐藏列表或树中的最后一项,从而阻止用户单击该项。作为 Linux 上的一种解决方法,您可以通过设置以下系统变量来禁用覆盖滚动条:GTK_OVERLAY_SCROLLING=0