作者 |吃井不忘挖水人
小編 | 不吃豬頭肉
Docker是一個開源的應(yīng)用容器引擎,它可以實現(xiàn)讓開發(fā)者打包他們的應(yīng)用、依賴以及配置到一個可移植的鏡像中,并且可以發(fā)布到任何可運行Docker的Linux或Windows操作系統(tǒng)的機(jī)器上,并可以無需再次進(jìn)行配置便完美執(zhí)行。Docker容器是使用的沙箱機(jī)制,任何容器之間的創(chuàng)建、運行和關(guān)閉不會相互影響,相互之間也不會有任何接口。容器和虛擬機(jī)雖然都使用虛擬化技術(shù),但容器并不是模擬一個完整的操作系統(tǒng),而是在宿主機(jī)操作系統(tǒng)上應(yīng)用虛擬化技術(shù),可實現(xiàn)軟件應(yīng)用的秒級啟動和響應(yīng),相比而言,虛擬機(jī)冗余步驟多、啟動太慢、占用內(nèi)存硬盤資源,過于笨重。
在敏捷開發(fā)模式越發(fā)流行的現(xiàn)在,Docker技術(shù)的使用也越發(fā)普遍,開發(fā)過程中對迭代版本中的代碼的測試成本也逐漸增長,如何方便快捷地對代碼進(jìn)行測試也隨之成為了一個越來越值得關(guān)注的問題。
在眾多種類的代碼動態(tài)測試工具中,北匯信息所采用的是Vector旗下的代碼動態(tài)測試工具—VectorCAST/C++。VectorCAST/C++工具是德國Vector公司的一款白盒測試工具,主要用于實現(xiàn)代碼的單元測試和集成測試。工具最大的特點以及優(yōu)勢就在于經(jīng)受了多個大型量產(chǎn)項目的實踐,證明了工具對C++高階特性、Linux系統(tǒng)和CI平臺的強(qiáng)力支持。
那下面為大家介紹VectorCAST這款強(qiáng)力的動態(tài)代碼測試工具在Docker場景中的使用。
VectorCAST使用
基于Docker技術(shù)進(jìn)行開發(fā),實際情景一般是代碼與編譯環(huán)境同時部署在鏡像中,或是代碼和編譯環(huán)境分開部署在本地服務(wù)器和鏡像內(nèi),那么這也導(dǎo)致在使用工具時可能會采用不同的方式。
掛載工具方式
在使用多個Docker鏡像進(jìn)行代碼版本迭代或控制的開發(fā)場景下,不需要將VectorCAST工具先放置到鏡像中,而是使用掛載的形式,將工具在啟動容器時掛載到對應(yīng)容器中,以實現(xiàn)在容器中對工具的使用,此方式大大減少了工具重復(fù)的安裝過程,并且實現(xiàn)同一個工具對不同鏡像的復(fù)用。下面簡要說明使用的流程。
i.容器的啟動
參數(shù)解析
1、docker:Docker的二進(jìn)制執(zhí)行文件。2、run:與前面的docker組合來運行一個容器。3、-v:設(shè)定共享目錄,為了將安裝包保存到容器中,需要指定目錄。D:\Docker\Data指本地目錄,可以自定義;/dev/shm是指容器中的目錄。將需要復(fù)制到容器中的文件放置到D:\Docker\Data中,在容器中就可以進(jìn)入/dev/shm來訪問這些文件。4、-i: 以交互模式運行容器5、-t: 為容器重新分配一個偽輸入終端 6、-e:設(shè)置環(huán)境變量在啟動容器時將工具所在的目錄通過-v選項掛載到容器內(nèi)。
ii.修改工具啟動文件
工具在容器內(nèi)打開后使用的是容器內(nèi)部的文件樹,所以需要將啟動文件中對應(yīng)的路徑進(jìn)行修改。
iii.工具啟動與使用
工具成功啟動后可以在工具頂端會標(biāo)識出正在運行工具的容器id號。
工具鏡像方式
若是需要進(jìn)行經(jīng)常性的工具遷移使用,使用工具掛載方式會顯得不便捷,那可以選擇另一種方式在容器中使用工具,即將工具放置在鏡像內(nèi),實現(xiàn)快捷的工具遷移。以下對此方式進(jìn)行介紹。
i.編寫Dockerfile
使用dockerfile在制作鏡像時將工具目錄同時拷貝進(jìn)去而形成一個新的鏡像。
ii.構(gòu)建鏡像
iii.啟動容器
使用指令啟動剛剛新制作的鏡像,而鏡像里本身就已經(jīng)包含著工具,不需額外對工具進(jìn)行掛載。
iv.修改工具啟動文件
工具在容器內(nèi)打開后使用的是容器內(nèi)部的文件樹,所以需要將啟動文件中對應(yīng)的路徑進(jìn)行修改。修改后可啟動工具。
v.工具使用
工具成功啟動后同樣可以在工具頂端標(biāo)識出正在運行工具的容器id號。
總結(jié)
在敏捷開發(fā)模式越發(fā)流行的現(xiàn)在,Docker技術(shù)的使用也隨之越發(fā)普遍,使用Docker會給開發(fā)帶來一些優(yōu)勢,如更高效的系統(tǒng)資源利用、更快速的應(yīng)用啟動、提供統(tǒng)一的運行環(huán)境、利于實現(xiàn)持續(xù)集成與部署、更易于移植以及更便捷的維護(hù)和拓展。但對開發(fā)過程中對迭代版本中的代碼的測試成本也逐漸增長,方便快捷地對代碼進(jìn)行盡可能早的測試也成為了越來越多用戶所追求的。
VectorCAST作為一款強(qiáng)力的C/C++代碼測試工具,不僅可以與Docker技術(shù)進(jìn)行結(jié)合,并且可以適配實際的交叉編譯鏈,對代碼基于最真實編譯環(huán)境進(jìn)行完備的測試檢驗,大大減少因代碼測試中測試工具與環(huán)境分割或適配帶來的花費,提高測試效率和降低測試難度。
如果您想了解更多有關(guān)信息請聯(lián)系北匯信息,北匯信息作為Vector公司的中國合作伙伴,擁有專業(yè)的VectorCAST測試服務(wù)團(tuán)隊,可為您提供周全完整的研發(fā)、測試解決方案及優(yōu)質(zhì)的技術(shù)支持服務(wù)。注:文中部分圖片來源于Vector。
-
測試
+關(guān)注
關(guān)注
8文章
5382瀏覽量
127075 -
容器
+關(guān)注
關(guān)注
0文章
499瀏覽量
22125 -
代碼
+關(guān)注
關(guān)注
30文章
4828瀏覽量
69060 -
Docker
+關(guān)注
關(guān)注
0文章
492瀏覽量
11967
發(fā)布評論請先 登錄
相關(guān)推薦
評論