Parasoft C/C++test 常见问题整理大全(三)
Parasoft C/C++test帮助团队写出更好的代码,实施更有效的测试,以及持续地监视以实现质量目标。 C / C ++test可以进行静态分析,全面代码审查,运行时错误检测,并在单元测试和组件测试中集成覆盖率分析。这些能够在开发周期的开始阶段,在开发桌面上自动完成。
一、C/C++测试无法启动。
在启动CppTest时,经常会挂起并且无法启动。在加载一些svn或mylyn相关插件时加载过程停止。只有卸载并重新安装该软件才能再次使用。
在这种情况下首先要搞清楚:
- 主机是Windows还是Linux
- 正在运行的C/C++ Test的确切版本(Help menu →About... →Press C/C++ Test gear icon 就可以查看到)
- 是独立的C/C++测试还是Eclipse插件
上文提到的测试无法启动问题很可能与Eclipse IDE中的“Deadlock on startup”bug有关,它表现在某些Linux系统中多次打开一个工作区启动后挂起。一般情况下可以按照以下方案处理:
- 使用“-clean”选项启动C / C ++测试GUI(cpptest可执行文件)。这应该会从“hang”状态恢复工作区。该过程可能需要应用几次。
- 将随C / C ++测试一起提供的Eclipse Platform升级到版本4.6.2+
建议可以将方案1作为优先选择方案,确认问题后可以将方案2作为永久解决方案。
二、解决OutOfMemoryError:Java堆空间或GC开销。
运行基于Parasoft Test的产品时,您可能会看到错误:
- java.lang.OutOfMemoryError:Java堆空间问题
- 在以下期间发生内部错误:”Building workspace“。超出GC开销限制问题
这是Java内存不足时会发生此错误。
有两种解决办法:
- 推荐减少软件使用的内存量。因为它通常涉及应用最佳实践。
- 增加软件可用的内存量,如下所述。
为JVM分配更多内存:
在某些情况下,在处理大型测试套件或复杂方案时,可能需要增加分配给运行SOAtest / LoadTest / Virtualize的JVM的默认内存量。
32位版本默认使用896MB。64位版本默认使用1792MB - 如果使用SOAtest小于9.4 则使用896MB。 要增加最大堆大小,请将-J-Xmx参数传递给可执行文件。例如,“cpptest -J-Xmx1400m”将启动C / C ++测试,最大堆大小设置为1400MB。
提示:
- 可以以类似的方式配置其他JVM参数。传递给可执行文件时,每个JVM参数都必须以“-J”为前缀。
- 多个JVM参数可以与前缀为“-J”的每个参数一起传递。例如,“soatest -J-Xmx1400m -J-Xms1024m”将最大堆大小设置为1400MB,将起始堆大小设置为1024MB。
三、ERROR:无法启动进程/访问被拒绝。
运行C ++ Desktop时,需要确保C ++ Test可以执行编译器。如果您没有正确设置,您将看到如下消息:
进程执行期间出错:无法启动进程:“C:\ gcc”“ - IC:\ Apps \ Parasoft \ C ++ test \ 10.3 \ engine \ runtime \ include”-I。-DPARASOFT_CPPTEST -v -E -dM -ffreestanding -xc“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.41.c”-o“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.18467.c“ 访问被拒绝。
这里的问题是C:\ gcc不存在。但是我会在哪里改变它?答案在Parasoft项目设置中:
-
右键单击项目并转到Parasoft-> C ++ Test-> Build Settings
-
然后,您将看到需要浏览到编译器,或者如果编译器可执行文件在PATH上,则只需指定可执行文件:
使用Cygwin环境只是一个额外的注意事项,在Cygwin中,'gcc'和'g ++'可以是指向实际编译器.exe文件的UNIX风格的符号链接。但是,C ++测试必须使用常规的Windows进程API来运行编译器。Windows不会理解Cygwin使用的UNIX风格的sym-links。因此,在使用Cygwin时,您应该在Build Settings中使用编译器的实际.exe名称。