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名稱。