• <menu id="w2i4a"></menu>
  • logo Parasoft C/C++test 使用教程

    文檔首頁>>Parasoft C/C++test 使用教程>>在容器化環(huán)境中部署靜態(tài)分析和單元測試(1):如何為容器化開發(fā)環(huán)境配置Parasoft C/C++test 2020.1

    在容器化環(huán)境中部署靜態(tài)分析和單元測試(1):如何為容器化開發(fā)環(huán)境配置Parasoft C/C++test 2020.1


    如何為容器化開發(fā)環(huán)境配置Parasoft C/C++test 2020.1

    Parasoft C/C++test 2020.1的發(fā)行版帶來了一系列增強(qiáng)功能,這些增強(qiáng)功能使其易于與Docker容器一起使用。我將引導(dǎo)您完成配置C/C++test 2020.1以在容器化開發(fā)環(huán)境中工作的步驟。


    嵌入式開發(fā)團(tuán)隊(duì)喜歡Docker容器


    開發(fā)工具的容器化部署正成為嵌入式開發(fā)團(tuán)隊(duì)的生力軍。盡管最初開發(fā)容器是為了解決微服務(wù)和基于Web的應(yīng)用程序部署方面的問題,但它們最近在嵌入式團(tuán)隊(duì)(尤其是使用容器來管理復(fù)雜工具鏈的大型團(tuán)隊(duì))中越來越受歡迎。

    在管理復(fù)雜的開發(fā)環(huán)境時(shí),尤其是在對安全至關(guān)重要的領(lǐng)域中,團(tuán)隊(duì)通常會面臨以下挑戰(zhàn):

    • 將整個團(tuán)隊(duì)的升級同步到工具的新版本,例如編譯器、構(gòu)建工具鏈等。
    • 動態(tài)響應(yīng)庫或軟件開發(fā)套件(SDK)等的新安全補(bǔ)丁。
    • 確保所有團(tuán)隊(duì)成員和自動化基礎(chǔ)架構(gòu)(CI/CD)的工具鏈的一致性。
    • 能夠?qū)﹂_發(fā)環(huán)境進(jìn)行版本控制并還原它,以服務(wù)于已通過特定工具鏈認(rèn)證的產(chǎn)品的舊版本。
    • 入職并設(shè)置新的開發(fā)人員。

    使用容器很容易解決所有這些問題。難怪團(tuán)隊(duì)喜歡容器!讓我們看一下如何配置C/C++test以在容器化環(huán)境中使用。


    Parasoft C/C++test Professional與容器化編譯工具鏈一起使用


    配置Parasoft C/C++test Professional可以很容易地與編譯工具鏈和部署在容器中的執(zhí)行環(huán)境一起使用。我們支持基于Linux和Docker容器的部署。以下是該類型設(shè)置外觀的高級概述:

    如您所見,C/C++test訪問容器化編譯器(GNU GCC)和運(yùn)行時(shí)環(huán)境。在此特定設(shè)置中,有兩個單獨(dú)的Docker容器:

    • 一種用于編譯器和構(gòu)建工具
    • 另一個用于執(zhí)行環(huán)境(例如,嵌入式Linux的剝離版本)

    編譯工具鏈用于靜態(tài)分析,以在解析之前對代碼進(jìn)行預(yù)處理,并用于單元測試以編譯檢測到的源代碼。執(zhí)行環(huán)境僅用于單元測試,以運(yùn)行帶有單元測試用例的創(chuàng)建的測試二進(jìn)制文件。

    配置Parasoft C++test 2020.1

    讓我們看看如何配置C/C++test Professional使其與容器內(nèi)編譯工具鏈和執(zhí)行環(huán)境一起使用。在示例中,我們將使用Docker集線器提供的最新GCC容器映像。

    以下說明假定您已在環(huán)境中正確安裝和配置了Docker引擎。與C/C++test Professional 2020.1相同。

    步驟1:啟動Parasoft C/C++test

    1.確保您的Docker工作正常。讓我們先進(jìn)行快速測試,并打印出GCC容器的“最新”映像中包含的GCC編譯器的版本號:

    2.在運(yùn)行Parasoft C/C++test之前,將專用的環(huán)境變量CPPTEST_CONTAINER_NAME設(shè)置為容器的名稱。這是告訴C/C++test應(yīng)該使用哪個容器來調(diào)用編譯器或鏈接器的簡單方法。它與Jenkins工作配合得很好。

    3.另外,建議您將CPPTEST_INSTALL變量設(shè)置為指向C/C++test安裝目錄。它使安裝簡單。一旦設(shè)置了變量,就可以開始C/C++test。

    4.對于您的工作區(qū),在HOME目錄中的某個位置選擇一個位置(稍后將對此進(jìn)行更多介紹)。

    步驟2:創(chuàng)建一個演示項(xiàng)目

    為了使創(chuàng)建演示項(xiàng)目超級簡單,讓我們使用標(biāo)準(zhǔn)的“新建項(xiàng)目”向?qū)?chuàng)建默認(rèn)的“HelloWorld”項(xiàng)目。

    1.選擇File Menu> New> C++ Project,然后選擇“Hello World C++ Project”。

    2.輸入項(xiàng)目的選擇名稱。它看起來或多或少類似于以下屏幕截圖。

    3.單擊“完成”為我們的示例創(chuàng)建默認(rèn)項(xiàng)目。

    步驟3:修改編譯器設(shè)置

    創(chuàng)建項(xiàng)目后,在C/C++test Build Settings中修改幾個項(xiàng)目。

    1.右鍵單擊項(xiàng)目,然后選擇屬性“Properties”,然后選擇Parasoft>C/C++test>Build Settings。

    2.在構(gòu)建設(shè)置“Build Settings”面板中,修改編譯器“Compiler”設(shè)置部分中的兩項(xiàng):

    • Family——進(jìn)行更改以匹配容器中安裝的編譯器。在撰寫此文時(shí),最新的“gcc”映像包含GNU GCC 9.2編譯器,提示選擇“GNU GCC 9.x (x86_64)”編譯器配置。
    • 默認(rèn)編譯器可執(zhí)行文件——編譯器的默認(rèn)可執(zhí)行文件必須替換為特殊包裝,才能調(diào)用容器內(nèi)編譯器,而不是直接安裝在主機(jī)操作系統(tǒng)中的常規(guī)編譯器。這些包裝程序remote-gcc和remote-g++C/C++test 2020.1發(fā)行版一起提供。在下面的屏幕截圖中,我在C/C++test安裝目錄中使用了輔助環(huán)境變量。您可以為您的環(huán)境設(shè)置類似的變量,也可以使用完整路徑查找包裝腳本。

    步驟4:驗(yàn)證容器正在運(yùn)行

    使用Parasoft C/C++test之前,請確保帶有編譯工具鏈的容器已啟動并正在運(yùn)行。

    我們在上一步中設(shè)置的編譯器包裝器旨在在正在運(yùn)行的容器中執(zhí)行編譯器命令,這比每次調(diào)用都啟動容器要快。

    對于CI/CD部署,可以在C/C++test運(yùn)行之前啟動容器,然后在C/C++test運(yùn)行之后停止容器,這是Jenkins作業(yè)的一部分。在此示例中,我們假定使用GUI base。為此,我們可以創(chuàng)建Eclipse運(yùn)行配置。我建議創(chuàng)建兩個“C/C++應(yīng)用程序”類型的配置,并將其命名如下:

    • “啟動gcc容器”
    • “停止gcc容器”

    1.選擇運(yùn)行菜單>運(yùn)行配置......

    2.創(chuàng)建兩個名為“啟動gcc容器”和“停止gcc容器”的運(yùn)行配置。

    3.在兩種配置的“Main”選項(xiàng)卡中,將您的Docker路徑作為“C/C++應(yīng)用程序”輸入,如下所示:

    4.對于“啟動gcc容器”,在參數(shù)選項(xiàng)卡中輸入以下命令:

    run --rm -d -it --name gcc -v ${env_var:HOME}:${env_var:HOME}

    -v ${env_var:CPPTEST_INSTALL}:${env_var:CPPTEST_INSTALL} gcc

    如下面的屏幕截圖所示:

    該命令有趣的部分是-v選項(xiàng),用于映射卷。

    第一個-v選項(xiàng)將本地HOME目錄映射到容器文件系統(tǒng)。這樣做的目的是使訪問在容器內(nèi)運(yùn)行的編譯器以及在主機(jī)操作系統(tǒng)中運(yùn)行的Parasoft C/C++test的源代碼成為可能。

    為了方便起見,我在示例中使用HOME是因?yàn)槲覍⒐ぷ鲄^(qū)直接放置在HOME中。

    對于實(shí)際設(shè)置,您只能嚴(yán)格地將文件系統(tǒng)中包含源樹和Eclipse工作區(qū)的部分與項(xiàng)目映射。

    第二個-v選項(xiàng)映射C/C++test安裝目錄的位置,以允許訪問容器內(nèi)的C/C++test頭文件。

    5.對于“停止gcc容器”,在參數(shù)選項(xiàng)卡中輸入以下命令,如下圖所示:

    stop gcc


    6.讓我們使用“啟動gcc容器”運(yùn)行配置來運(yùn)行容器。

    Eclipse控制臺應(yīng)向您顯示容器的哈希值。為確保一切正常,您可以切換到命令行并調(diào)用以下命令:

    如果您在列表中看到我們的“gcc”容器,則可以開始使用C/C++test來測試代碼了。

    7.讓我們在導(dǎo)航器中選擇項(xiàng)目。使用Parasoft菜單,選擇Test Using> Builtin> Unit Testing> Generate Unit Tests。

    您應(yīng)該看到在項(xiàng)目內(nèi)部創(chuàng)建了一個新的“tests”目錄,并為“main”功能創(chuàng)建了一個單元測試。

    8.生成測試用例后,就可以執(zhí)行它們了。對于執(zhí)行,請?jiān)谌萜髦羞x擇Test Using> Builtin> Unit Testing> Run Unit Tests。

    C/C++test應(yīng)該調(diào)用容器內(nèi)部編譯和鏈接命令行的集合,最后在容器中創(chuàng)建和執(zhí)行測試二進(jìn)制文件。

    于是,通過這些步驟,您準(zhǔn)備了Parasoft C/C++test以使用容器內(nèi)編譯工具鏈執(zhí)行測試活動。

    如果需要為項(xiàng)目更改編譯器或在運(yùn)行時(shí)執(zhí)行環(huán)境中進(jìn)行某些修改,則可以更新容器映像或?qū)⑵涓臑槠渌姹?。(記住要更?/span>CPPTEST_CONTAINER_NAME變量。)

    請繼續(xù)關(guān)注第二部分。我將解釋如何使用Parasoft C/C++test Standard創(chuàng)建容器映像。


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();