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

    文檔首頁>>Parasoft C/C++test 使用教程>>在容器化環(huán)境中部署靜態(tài)分析和單元測試(2):如何使用Parasoft C/C++test創(chuàng)建容器映像

    在容器化環(huán)境中部署靜態(tài)分析和單元測試(2):如何使用Parasoft C/C++test創(chuàng)建容器映像


    如何使用Parasoft C/C++test創(chuàng)建容器映像

    這篇文章的1部分討論了使用容器部署嵌入式開發(fā)工具鏈的好處。它展示了如何配置Parasoft C/C++test Professional以使其與在容器中部署的編譯工具鏈和測試執(zhí)行環(huán)境一起使用。

    現(xiàn)在,讓我們看一下使用Parasoft C/C++test Standard創(chuàng)建容器圖像。我將演示一個包含容器內(nèi)靜態(tài)分析執(zhí)行的簡單示例。


    Docker容器中部署Parasoft C/C++test Standard


    作為基于命令行的工具,Parasoft C/C++test標(biāo)準(zhǔn)適用于容器內(nèi)部署。它可以與編譯器打包在一起,并將系統(tǒng)構(gòu)建到一個容器映像中,并用于CI/CD,并部署到開發(fā)人員的桌面以進(jìn)行本地命令行掃描。下圖顯示了此設(shè)置的高級概述:


    該圖顯示Jenkins使用容器化的C/C++test運(yùn)行靜態(tài)分析。在此特定設(shè)置中,Parasoft C/C++test,編譯工具鏈和構(gòu)建工具部署在該圖右上角所示的容器中。

    右下方它下方的容器提供了執(zhí)行環(huán)境,執(zhí)行運(yùn)行時測試(例如單元測試或自動系統(tǒng)級測試)可能需要執(zhí)行環(huán)境。

    如果我們打算僅執(zhí)行靜態(tài)分析,則我們的設(shè)置很可能僅包含帶有編譯工具鏈和Parasoft C/C++test的一種容器。


    使用Parasoft C/C++test創(chuàng)建容器映像


    如果尚未安裝,請安裝最新版的Parasoft C/C++test 2020.1 for Linux

    為了簡化使用C/C++test創(chuàng)建容器映像的過程,最新版本附帶了一個Dockerfile示例。您可以在以下位置找到該Dockerfile:

    /integration/docker/Dockerfile

    這個簡單的Dockerfile僅關(guān)注構(gòu)建映像所需的C/C++test步驟。在大多數(shù)實(shí)際情況下,您需要將此文件與Dockerfile合并。

    在分析示例Dockerfile中的內(nèi)容之前,讓我們看看它是如何工作的。我的示例假定以下簡單文件結(jié)構(gòu):

    $HOME/sandbox/parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz

    1.解壓縮C/C++test發(fā)行版。

    • cd $HOME/sandbox
    • tar xzf parasoft_cpptest_standard-2020.1.0-linux.x86_64.tar.gz

    2.從發(fā)行版中復(fù)制示例Dockerfile

    • cp cpptest/integration/docker

    3.使用有關(guān)許可證的信息為C/C++test準(zhǔn)備屬性文件。我們將使用默認(rèn)的cpptestcli.properties文件作為基礎(chǔ),因此我們將其復(fù)制到我們的工作目錄中:

    • cp cpptest / cpptestcli.properties

    編輯它以插入有關(guān)您的許可證服務(wù)器位置的信息。使用您喜歡的編輯器來配置許可信息。完成后保存文件。

    4.編輯Dockerfile,并取消注釋行號13(將cpptestcli.properties文件從本地目錄復(fù)制到容器中位置的行)。Dockerfile中的行應(yīng)如下所示:

    • COPY cpptestcli.properties /opt/parasoft/cpptest

    5.現(xiàn)在,我們準(zhǔn)備創(chuàng)建Docker映像。運(yùn)行命令以使用C/C++test構(gòu)建第一個映像。圖像名稱為“cpptest_ci_image”。

    • docker build -t cpptest_ci_image

    Docker將花費(fèi)一些時間來分析其緩存并下載所需的基本映像。完成此操作后,將復(fù)制C/C++test發(fā)行版并將其安裝到映像中。一兩分鐘后,圖像應(yīng)準(zhǔn)備就緒。 通過執(zhí)行命令以列出所有圖像來確認(rèn)它:

    • docker image -list

    在輸出中,您應(yīng)該看到頂部列出了“cpptest_ci_image”。太好了,因此我們已經(jīng)建立了圖像并準(zhǔn)備就緒?,F(xiàn)在該進(jìn)行測試了!


    測試容器映像


    為了進(jìn)行簡單測試,請使用Dockerfile中提供的幫助程序/示例命令行之一。

    使用您喜歡的編輯器打開Dockerfile,然后向下滾動到文件底部。您應(yīng)該看到幾個示例命令行,如下所示:

    讓我們使用第26行中的命令行在該發(fā)行版隨附的C/C++test示例之一上執(zhí)行容器內(nèi)靜態(tài)分析。

    由于我們決定使用許可信息將cpptestcli.properties文件構(gòu)建到容器中,因此我們可以簡化命令行并刪除-settings選項(xiàng)。測試的命令行應(yīng)如下所示:

    • docker run --rm -v $PWD:$PWD -w /opt/parasoft/cpptest/examples/ATM cpptestcli -compiler gcc_9-64 -module . -trace make clean all

    瞧!靜態(tài)分析是在容器中執(zhí)行的。結(jié)果在控制臺上報(bào)告。

    我們可以進(jìn)一步配置該工具以在本地文件系統(tǒng)上生成HTML報(bào)告,但這是另一回事。我們的主要目標(biāo)是創(chuàng)建內(nèi)部帶有C/C++test的容器,并將其配置為執(zhí)行靜態(tài)分析。我們實(shí)現(xiàn)了目標(biāo)。


    使用靜態(tài)分析設(shè)置CI服務(wù)器


    如果您需要在流程中設(shè)置帶有靜態(tài)分析的CI服務(wù)器,則您的任務(wù)會簡單得多。只需訪問容器。如果您團(tuán)隊(duì)中的開發(fā)人員想要運(yùn)行靜態(tài)分析,則情況也是如此。

    是否需要Parasoft C/C++test升級到最新版本?只需下載發(fā)行版,重建您的容器映像,即可完成!團(tuán)隊(duì)和自動化基礎(chǔ)設(shè)施甚至都不會注意到此操作。如有必要,可平滑,輕松且可逆。


    關(guān)于Dockerfile內(nèi)容


    在結(jié)束之前,讓我們看一下用于創(chuàng)建映像的Parasoft C/C++test附帶的Dockerfile的內(nèi)容。下圖顯示了/integration/docker/Dockerfile的內(nèi)容。

    詳細(xì)信息如下:

    • 2行指定GCC映像的Docker集線器,容器映像基于該集線器。
    • 3行為將在此腳本中執(zhí)行的后續(xù)命令設(shè)置工作目錄。
    • 7行,我們將C/C++test發(fā)行版(存檔)復(fù)制到容器映像。
    • 10行將分布提取到容器內(nèi)的位置:/opt/parasoft(請注意第4行的WORKDIR命令)
    • 13行將定制的cpptestcli.properties文件從本地目錄復(fù)制到C/C++test的容器內(nèi)安裝中。此步驟是可選的,默認(rèn)情況下已被注釋掉。在大多數(shù)情況下,您需要在C/C++test的安裝中嵌入一些屬性。最典型的方案是許可證配置,其中將包括許可證服務(wù)器的位置、憑據(jù)等。
    • 16行刪除了分發(fā)存檔。這只是一個清理。
    • 18行將workdir重置為/home(可選)
    • 19行指定了在容器啟動時要運(yùn)行的可執(zhí)行文件。

    這就是使用Parasoft C/C++test創(chuàng)建一個簡單容器即可執(zhí)行靜態(tài)分析所需的一切。

    正如我提到的,這是一個簡單的Dockerfile。它已添加到分發(fā)中,以為您提供一個示例,說明您可能需要為環(huán)境創(chuàng)建容器映像。您將需要對其進(jìn)行調(diào)整,或者將其與現(xiàn)有的Dockerfile合并。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();