1. gzyueqian
      13352868059

      嵌入式開發(fā):嵌入式應(yīng)用程序 Cpputest 入門

      更新時(shí)間: 2022-02-21 07:10:00來源: 粵嵌教育瀏覽量:11684


        嵌入式應(yīng)用程序中的單元測(cè)試應(yīng)用程序代碼是嵌入式開發(fā)人員經(jīng)常忽略的基本需求。乍一看,啟動(dòng)并運(yùn)行單元測(cè)試工具似乎很復(fù)雜。但是,開發(fā)人員可以相對(duì)快速地啟動(dòng)和運(yùn)行單元測(cè)試工具環(huán)境。這篇文章將探討 Cpputest 以及開發(fā)人員如何利用現(xiàn)有資源來快速啟動(dòng)和運(yùn)行環(huán)境。


        Cpputest簡介


        Cpputest 是一個(gè)基于 C/C++ 的測(cè)試框架,用于單元測(cè)試和測(cè)試驅(qū)動(dòng)代碼。通常,Cpputest 用于測(cè)試 C 和 C++ 應(yīng)用程序。該框架為開發(fā)人員提供了一個(gè)可以執(zhí)行測(cè)試用例的測(cè)試工具。Cpputest 還提供了一組可用于測(cè)試假設(shè)的斷言。如果結(jié)果不正確,則將測(cè)試用例標(biāo)記為未通過測(cè)試。


        Cpputest 為嵌入式開發(fā)人員提供了一個(gè)免費(fèi)的開源框架來構(gòu)建單元測(cè)試來證明應(yīng)用程序代碼。通過一些額外的工作,如果他們?cè)敢猓_發(fā)人員甚至可以在目標(biāo)上運(yùn)行測(cè)試。一般來說,可以使用 Cpputest 來測(cè)試存在于硬件抽象層之上的應(yīng)用程序代碼。



        安裝 Cpputest


        可以使用幾種不同的安裝方法來設(shè)置 Cpputest,可以在 Cpputest 網(wǎng)站上找到。首先是安裝預(yù)打包安裝在 Linux 或 MacOS 上。(如果要在 Windows 上安裝,則需要使用 Cygwin 或類似工具)。或者,開發(fā)人員可以克隆 Cpputest git 存儲(chǔ)庫。


        如果你希望快速入門并進(jìn)行一些實(shí)驗(yàn),我建議你采用不同的方法。James Grenning 組建了一個(gè) Cpputest 入門項(xiàng)目,其中包含開發(fā)人員入門所需的一切。啟動(dòng)項(xiàng)目包括一個(gè)可以加載的 docker 文件和一個(gè)安裝和配置環(huán)境的簡單命令。如果你想繼續(xù),請(qǐng)將 Cpputest 入門項(xiàng)目克隆到你計(jì)算機(jī)上的合適位置。完成此操作后,你可以按照 James 在 README.md 中的說明進(jìn)行操作,或者按照本節(jié)的其余部分進(jìn)行操作。


        在走得太遠(yuǎn)之前,確保你在你的機(jī)器上安裝了 docker 是很重要的。安裝過程因 Linux 風(fēng)格而異,因此你必須搜索一下以找到適合你的方法。


        安裝并運(yùn)行 docker 后,嵌入式開發(fā)人員可以使用他們的終端應(yīng)用程序?qū)Ш降?Cpputest 啟動(dòng)項(xiàng)目目錄的根目錄,然后運(yùn)行以下命令:


        docker-compose run cpputest make all


        第一次運(yùn)行上述命令時(shí),它需要幾分鐘才能運(yùn)行。之后,該命令將下載 docker 鏡像,克隆并安裝 Cpputest 并構(gòu)建啟動(dòng)項(xiàng)目。此時(shí),你會(huì)在終端中看到類似以下內(nèi)容:



        正如你在上面看到的,在第 23 行的 tests/MyFirstTest.cpp 中存在測(cè)試用例失敗以及 ERROR: 2 消息。這意味著 Cpputest 和 James 的啟動(dòng)項(xiàng)目已安裝并正常工作。


        利用 Docker 容器


        docker-compose run 命令使 docker 加載 cpputest 容器,然后 make all。一旦命令執(zhí)行完畢,它將離開 docker 容器。在上圖中,這就是我們得到 ERROR: 2. 它返回 docker 容器退出狀態(tài)的錯(cuò)誤代碼的原因。


        沒有必要經(jīng)常使用“docker-compose run cpputest make all”命令。嵌入式開發(fā)人員還可以使用以下命令進(jìn)入 docker 容器并留在那里:


        docker-compose run --rm --entrypoint /bin/bash cpputest


        通過這樣做,開發(fā)人員可以簡單地使用命令“make”或“make all”。這樣做的好處是它稍微簡化了流程,并刪除了從原始命令退出 docker 映像時(shí)返回的 ERROR 消息。因此,例如,如果我運(yùn)行 docker 命令并 make,測(cè)試工具的輸出現(xiàn)在如下所示:



        要退出 docker 容器,我需要做的就是輸入 exit。


        試運(yùn)行Cpputest


        現(xiàn)在我們已經(jīng)設(shè)置了 Cpputest 入門項(xiàng)目,很容易進(jìn)入并開始使用測(cè)試工具。在添加我們自己的任何測(cè)試之前,我們應(yīng)該刪除最初的失敗測(cè)試用例。此測(cè)試用例位于 /tests/MyFirstTest.cpp 中。可以使用你喜歡的文本編輯器打開該文件。你會(huì)從上圖中注意到測(cè)試失敗發(fā)生在第 23 行。該行包含以下內(nèi)容:


        FAIL("Your test is running! Now delete this line and watch your test pass.");


        FAIL 是一個(gè)內(nèi)置于 Cpputest 中的斷言。所以首先要嘗試的是注釋掉該行,然后運(yùn)行“make”或“make all”命令。如果這樣做,你將看到測(cè)試工具現(xiàn)在成功運(yùn)行,沒有任何失敗的測(cè)試用例,如下所示:



        現(xiàn)在你可以使用 Cpputest 手冊(cè)中的斷言開始構(gòu)建你的單元測(cè)試用例。嵌入式開發(fā)人員可能決定刪除 MyFirstTest.cpp 并添加他們的測(cè)試模塊或開始實(shí)施他們的測(cè)試用例。這完全取決于你的最終目的。


        結(jié)論


        我們已經(jīng)簡要討論了如何快速啟動(dòng)和運(yùn)行 Cpputest。使用 Cpputest 非常簡單,而且結(jié)果令人信服。開發(fā)人員可以利用他們的測(cè)試工具和斷言來檢查代碼是否按預(yù)期工作。如果出現(xiàn)問題,運(yùn)行測(cè)試工具會(huì)將開發(fā)人員指向失敗的測(cè)試用例并提供失敗測(cè)試的行號(hào)。測(cè)試工具可以幫助開發(fā)人員執(zhí)行自動(dòng)化回歸測(cè)試并快速識(shí)別代碼中的錯(cuò)誤。


        開發(fā)人員不一定非要使用 Cpputest。有許多可用的單元測(cè)試工具。然而,嵌入式開發(fā)人員需要使用某種類型的測(cè)試工具,而 Cpputest 很容易啟動(dòng)和運(yùn)行,并且?guī)缀蹩梢约傻饺魏螛?gòu)建過程中。


      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日本国产在线精品专区 | 亚洲日韩精品综合中文字幕 | 亚洲日韩欧美国产精品区 | 一本大道香蕉久97在线播放 | 亚洲国产高清不卡在线播放 | 亚洲一线高清在线视频 |