作者 |吃井不忘挖水人
小編 | 不吃豬頭肉
Docker是一個開源的應用容器引擎,它可以實現讓開發者打包他們的應用、依賴以及配置到一個可移植的鏡像中,并且可以發布到任何可運行Docker的Linux或Windows操作系統的機器上,并可以無需再次進行配置便完美執行。Docker容器是使用的沙箱機制,任何容器之間的創建、運行和關閉不會相互影響,相互之間也不會有任何接口。容器和虛擬機雖然都使用虛擬化技術,但容器并不是模擬一個完整的操作系統,而是在宿主機操作系統上應用虛擬化技術,可實現軟件應用的秒級啟動和響應,相比而言,虛擬機冗余步驟多、啟動太慢、占用內存硬盤資源,過于笨重。
在敏捷開發模式越發流行的現在,Docker技術的使用也越發普遍,開發過程中對迭代版本中的代碼的測試成本也逐漸增長,如何方便快捷地對代碼進行測試也隨之成為了一個越來越值得關注的問題。
在眾多種類的代碼動態測試工具中,北匯信息所采用的是Vector旗下的代碼動態測試工具—VectorCAST/C++。VectorCAST/C++工具是德國Vector公司的一款白盒測試工具,主要用于實現代碼的單元測試和集成測試。工具最大的特點以及優勢就在于經受了多個大型量產項目的實踐,證明了工具對C++高階特性、Linux系統和CI平臺的強力支持。
那下面為大家介紹VectorCAST這款強力的動態代碼測試工具在Docker場景中的使用。VectorCAST使用
基于Docker技術進行開發,實際情景一般是代碼與編譯環境同時部署在鏡像中,或是代碼和編譯環境分開部署在本地服務器和鏡像內,那么這也導致在使用工具時可能會采用不同的方式。
掛載工具方式
在使用多個Docker鏡像進行代碼版本迭代或控制的開發場景下,不需要將VectorCAST工具先放置到鏡像中,而是使用掛載的形式,將工具在啟動容器時掛載到對應容器中,以實現在容器中對工具的使用,此方式大大減少了工具重復的安裝過程,并且實現同一個工具對不同鏡像的復用。下面簡要說明使用的流程。
i.容器的啟動
參數解析
1、docker:Docker的二進制執行文件。2、run:與前面的docker組合來運行一個容器。3、-v:設定共享目錄,為了將安裝包保存到容器中,需要指定目錄。D:\Docker\Data指本地目錄,可以自定義;/dev/shm是指容器中的目錄。將需要復制到容器中的文件放置到D:\Docker\Data中,在容器中就可以進入/dev/shm來訪問這些文件。4、-i: 以交互模式運行容器5、-t: 為容器重新分配一個偽輸入終端 6、-e:設置環境變量在啟動容器時將工具所在的目錄通過-v選項掛載到容器內。
ii.修改工具啟動文件工具在容器內打開后使用的是容器內部的文件樹,所以需要將啟動文件中對應的路徑進行修改。
iii.工具啟動與使用
工具成功啟動后可以在工具頂端會標識出正在運行工具的容器id號。
工具鏡像方式
若是需要進行經常性的工具遷移使用,使用工具掛載方式會顯得不便捷,那可以選擇另一種方式在容器中使用工具,即將工具放置在鏡像內,實現快捷的工具遷移。以下對此方式進行介紹。
i.編寫Dockerfile使用dockerfile在制作鏡像時將工具目錄同時拷貝進去而形成一個新的鏡像。
ii.構建鏡像
iii.啟動容器使用指令啟動剛剛新制作的鏡像,而鏡像里本身就已經包含著工具,不需額外對工具進行掛載。
iv.修改工具啟動文件
工具在容器內打開后使用的是容器內部的文件樹,所以需要將啟動文件中對應的路徑進行修改。修改后可啟動工具。
v.工具使用工具成功啟動后同樣可以在工具頂端標識出正在運行工具的容器id號。
總結
在敏捷開發模式越發流行的現在,Docker技術的使用也隨之越發普遍,使用Docker會給開發帶來一些優勢,如更高效的系統資源利用、更快速的應用啟動、提供統一的運行環境、利于實現持續集成與部署、更易于移植以及更便捷的維護和拓展。但對開發過程中對迭代版本中的代碼的測試成本也逐漸增長,方便快捷地對代碼進行盡可能早的測試也成為了越來越多用戶所追求的。
VectorCAST作為一款強力的C/C++代碼測試工具,不僅可以與Docker技術進行結合,并且可以適配實際的交叉編譯鏈,對代碼基于最真實編譯環境進行完備的測試檢驗,大大減少因代碼測試中測試工具與環境分割或適配帶來的花費,提高測試效率和降低測試難度。
如果您想了解更多有關信息請聯系北匯信息,北匯信息作為Vector公司的中國合作伙伴,擁有專業的VectorCAST測試服務團隊,可為您提供周全完整的研發、測試解決方案及優質的技術支持服務。注:文中部分圖片來源于Vector。
-
測試
+關注
關注
8文章
5375瀏覽量
127061 -
容器
+關注
關注
0文章
499瀏覽量
22120 -
代碼
+關注
關注
30文章
4825瀏覽量
69047 -
Docker
+關注
關注
0文章
492瀏覽量
11964
發布評論請先 登錄
相關推薦
華為云 X 實例部署 Docker 應用的性能評測優化與實踐指南
![華為云 X 實例部署 <b class='flag-5'>Docker</b> 應用的性能評測優化與實踐指南](https://file1.elecfans.com//web3/M00/04/31/wKgZPGdxD3mADvsQAAL6vRVXj9A991.png)
基于 Docker 與 Jenkins 實現自動化部署
![基于 <b class='flag-5'>Docker</b> 與 Jenkins 實現自動化部署](https://file1.elecfans.com//web3/M00/05/21/wKgZPGd88vSARHEhAAEA43MSbXE167.png)
Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~
![Flexus X 實例 C#/.Net Core 結合(git <b class='flag-5'>代碼</b>管理、<b class='flag-5'>docker</b> 自定義鏡像)快速發布部署 - 讓你的項目飛起來~](https://file1.elecfans.com//web3/M00/03/C8/wKgZPGdsBXmALG2KAACgmvlB9Hk561.png)
信令測試儀器的技術原理和應用場景
Docker運行環境安裝
脈沖式線圈測試儀的技術原理和應用場景
ARM平臺實現Docker容器技術
ARM平臺實現Docker容器技術
Jtti:Docker會替代調虛機嗎
![Jtti:<b class='flag-5'>Docker</b>會替代調虛機嗎](https://file1.elecfans.com/web2/M00/FB/5A/wKgZomaQzyWAG5r5AAQoi__pg4c076.png)
如何在不同應用場景下構建音頻測試環境
![如何在不同應用<b class='flag-5'>場景</b><b class='flag-5'>下</b>構建音頻<b class='flag-5'>測試</b>環境](https://file1.elecfans.com/web2/M00/F7/92/wKgZomaE94qAfR1iAAAP7VZ3DFA863.png)
ARM平臺實現Docker容器技術
![ARM平臺實現<b class='flag-5'>Docker</b>容器技術](https://file1.elecfans.com/web2/M00/C3/DE/wKgaomXpMM2ANlt5AARGmREsrH4588.png)
評論