原創(chuàng)|使用教程|編輯:張莉|2025-09-19 10:42:52.997|閱讀 48 次
概述:Parasoft C/C++test是一款強大的軟件測試工具,專門為C和C++語言開發(fā)提供全面的代碼質量保障解決方案,對于使用CMake構建系統(tǒng)的項目,C/C++test從2020.1版本開始提供了專門的支持,簡化了測試配置流程,使開發(fā)人員能夠更高效地集成自動化測試到他們的開發(fā)工作流中。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Parasoft C/C++test是一款強大的軟件測試工具,專門為C和C++語言開發(fā)提供全面的代碼質量保障解決方案。它集成了靜態(tài)分析、單元測試、覆蓋率分析等多種測試技術,幫助開發(fā)團隊在軟件開發(fā)早期發(fā)現(xiàn)和修復缺陷,提高代碼質量和可靠性。對于使用CMake構建系統(tǒng)的項目,C/C++test從2020.1版本開始提供了專門的支持,簡化了測試配置流程,使開發(fā)人員能夠更高效地集成自動化測試到他們的開發(fā)工作流中。
在之前,我們都是使用的CMake自帶的命令,先生成Makefile文件,然后使用cpptesttrace.exe跟著make命令生成BDF文件。但是這樣生成的BDF文件里不僅包含項目中的文件,還包含CMake自動生成的文件,有時還會出現(xiàn)文件重復的問題(一般因為項目編譯時,文件被拷貝到build文件夾下)。
使用條件
C/C++test2020.1版本以上。
具體使用
具體使用只有導入項目方式跟其他項目有些區(qū)別,導入項目有兩種方式:
前者使用簡單,僅適用于靜態(tài)分析,因為生成的json文件中沒有包含link信息,而這是所單元測試需要的。后者相對要麻煩,但是支持單元測試。
生成json文件方式
這種方式使用的是CMake自帶的功能,主要方式是修改CMAKE_EXPORT_COMPILE_COMMANDS選項。兩種方式:
1.在CMakeLists.txt文件中將CMAKE_EXPORT_COMPILE_COMMANDS選項設置為ON;
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
2.生成構建腳本時,將其添加到cmake的命令行調用中。
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 <path_to_src>
修改CMakeLists.txt文件方式
1.修改主CMakeLists.txt文件,將<INSTALL_DIR>/integration/cmake/cpptest-project.cmakeinclude進來(大部分情況下,其實不需要修改這個cpptest-project.cmake文件);
2.根據(jù)情況加上cpptest_add_executable(),具體下面說明;
3.運行CMake的時候設置CPPTEST_PROJECT=ON,實際命令可能是cmake -DCPPTEST_PROJECT=ON ..;
4.使用import projects的方式,將項目導入到workspace中,命令行就使用-import參數(shù)替代-bdf參數(shù),這里導入項目的文件地址一般就是項目文件夾,如果找不到,可以在項目下搜索 .parasoft文件;
5.后面就是基本的靜態(tài)分析和單元測試的步驟了。
cpptest_add_executable()的詳細說明
其實這個部分,我們不僅僅是要添加cpptest_add_executable(),如果有需要,我們還需要添加target_include_directories()和target_link_libraries(),否則可能缺少鏈接信息等。
添加的原則是遇到add_executable()添加cpptest_add_executable(),遇到target_include_directories()添加target_include_directories(),遇到target_link_libraries()添加target_link_libraries()。一般情況下,這些都在各個模塊的CMakeLists.txt文件中出現(xiàn)。
cpptest_add_executable部分
按照用戶手冊中提到的,cpptest_add_executable部分組成如下:
cpptest_add_executable( <target_name> [CPPTEST_COMPILER_ID <compiler_id>] [CPPTEST_PROJECT_NAME <test_project_name>] [CPPTEST_PROJECT_LOC <test_project_location>] [CPPTEST_PROJECT_FOLDERS <name1=location1> <name2=location2> ...] [EXCLUDE_FROM_ALL] SOURCES <src1.cpp> <src2.cpp> ... | TARGETS <target1> <target2> ... )
這里詳細說明一下幾個必需要設置的參數(shù):
<target_name>:這個必需要設置,內容隨意,推薦在原項目名后加_cpptest,但是這個參數(shù)會關系到其他地方的設置。另外如果是一個大項目下面包含的多個模塊,那么各個模塊的<target_name>需要設置成不同的;
SOURCES:這個與TARGETS是二選一,后面跟需要跟蹤編譯信息的文件,有的時候,我們能夠從CMakeLists.txt文件中找到相關的變量,而不需要將涉及的源文件一一列出來;
TARGETS:推薦使用TARGETS,比如CMakeLists.txt文件中有project(xxx),那么我們就可以設置TARGETS xxx;
target_link_libraries/target_link_libraries部分
這部分的設置參照原本的target_link_libraries就行,但是其中的<target_name>需要跟上面的對應起來。
比如,原本的是
target_link_libraries(main mod1 mod2 mod3)
那么我們就需要再添加
target_link_libraries(main_cpptest mod1 mod2 mod3)
通過Parasoft C/C++test對CMake項目的針對性支持,開發(fā)團隊能夠更加高效地實施全面的軟件質量保障策略。這一集成不僅幫助實現(xiàn)了早期缺陷檢測、代碼規(guī)范符合性驗證以及單元測試自動化,還支持持續(xù)集成環(huán)境的無縫集成。
Parasoft C/C++test特別適用于航空航天、汽車電子、醫(yī)療設備、工業(yè)控制等高可靠性要求的行業(yè),幫助這些行業(yè)解決功能安全標準合規(guī)性問題,確保軟件系統(tǒng)的高度可靠性和安全性。通過將質量保障左移,C/C++test使團隊能夠在開發(fā)初期發(fā)現(xiàn)和修復問題,大幅降低后期修復成本,加速產品上市時間,同時確保交付高質量的軟件產品。
關于慧都
慧都是一家行業(yè)數(shù)字化解決方案公司,專注于軟件、石油與工業(yè)領域,以深入的業(yè)務理解和行業(yè)經驗,幫助企業(yè)實現(xiàn)智能化轉型與持續(xù)競爭優(yōu)勢。在軟件工程領域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運維等軟件開發(fā)全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現(xiàn)技術合規(guī)、降本增效與風險可控。
慧都科技作為Parasoft公司在中國區(qū)的官方授權合作伙伴,為國內企業(yè)提供Parasoft C/C++test產品的正版授權、定制化部署與全生命周期技術支持與服務。我們致力于助力客戶精準貫徹功能安全標準、全面提升軟件開發(fā)效率、有效管控項目風險,最終構建符合國際標準的高質量軟件體系。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn