日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见单元测试工具介绍

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见单元测试工具介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.???????C/C++語言開發的首選利器- C++Test

?

?????????以前在windows平臺下的開發,使用的框架主要是MFC,以及console工程(基于win32SDK),屬于純C/C++開發的范疇。

?????????因此,使用的單元測試工具,主要有C++TestCppUnit兩種,其中又以前者為主。因為具有直接導入VC工程,以及自動生成測試集合、用例的優點,還是相當好用的。不過這個軟件也有缺點,就是修改測試用例時,基本上不能引入被測代碼中的符號。舉個例子,除了測試用例中已經生成的全局變量賦值語句,用戶如果想設定其他全局變量,或者定義一些指針類型-為了訪問某些全局數組空間,最終會發現,該測試用例無法運行。

?????????顯然,這一缺點,可以通過CppUnit中的手工編寫測試用例來解決。當然,缺點就是沒法自動生成測試用例了;你得一個一個的自己編寫。

?????????除過上面講到的缺點,C++Test是一個非常優秀的軟件,對于純C語言開發者,是非常便利和強大的。特別是對于嵌入式開發者,使用該軟件進行單元測試,能夠極大地提高軟件質量,避免target調試費時費力的缺點。

?????????當然,前提條件是,將嵌入式系統的代碼,成功移植到Visual C++環境(使用VC編譯器替代原來的gcc或者arm定制編譯器)。需要注意的是,只要求編譯通過,不要求連接通過-鏈接需要的函數可以由C++Test自動生成。

?????????在移植過程中,會遇到以下一些問題,這里給出筆者的簡單解決方法。

1)???匯編語言部分??如果能看懂,可以嘗試轉換為C代碼,否則屏蔽。

2)???特殊的函數標記或編譯器偽指令(pragma系統),直接屏蔽。

3)???不要忘記把原編譯器中的預定義宏遷移到VC工程中。最常見的是,一些標識CPU選項和debug等級的預定義宏。

筆者就曾經將一個code warrior開發環境下的arm工程,遷移到VC2005中,最終使用C++Test完成了單元測試。有圖為證。

?

????筆者的這個工程,大約包含幾百個源文件。如果使用手工生成測試用例的方法,需要大量的測試人員和人力才能完成;并且還難于管理測試用例。使用C++Test之后,減輕了不少工作量。

其實,該軟件還有一個優點-提供測試覆蓋率統計和圖示。相信這一點,也是單元測試的最終目標-百分之百覆蓋,所非常有利的工具了。

?

?

2.???????.Net環境單元測試的首選利器- Nunit

?

目前windows平臺下的最流行開發環境,非屬.Net開發環境莫屬。基于該環境,微軟提供了ManagedC++/VB/C#等開發語言,吸引了不少粉絲。當然,微軟的東西,都是集成在Visual Studio中的,連帶著也產生了單元測試工具-不過只在team版本中才有。

不過經過比較,筆者還是推薦Nunit。首先這個軟件是免費的,其次很強大,應用起來也很方便。只要仿照自帶的例子,編寫相應的測試類就行了-當然,必須引入“NUnit.Framework”包。

下圖是個簡單的例子,取材于該軟件的samples.



?

完成工程的解釋和鏈接后,可以通過Nunit,定位到該工程生成的“dll”文件進行測試。

?

?

3.???????Java環境單元測試的終極利器- Junit

?

從事Android開發之后,因為eclipse的緣故,選擇了Junit作為測試工具。其實,parasoft公司的J++Test也是不錯的選擇;不過Android開發包內置支持Junit,顯然更加值得推薦。

下面引用一個android開發包中的例子,進行簡單的說明。這個例子,讀者可以在“android\android-sdk-windows\samples\android-8\ApiDemos\tests”中找到。這個例子代表的工程,就是一個用于android平臺應用程序(JAVA代碼)單元測試的Junit測試工程。

?

?

與上一節中提到的測試源文件編寫類似,需要引入android.test.ActivityInstrumentationTestCase2包,才能引入測試驅動并且成功連接到測試驅動入口。當然,可供使用的測試用例原型有很多,不止這一個類型;比較常用的還有“android.test.AndroidTestCase”。

?????????實際測試時,可以選定任意的android終端進行。在這個實例中,筆者選定的是android模擬器。測試完成后,eclipseJunit面板,會顯示測試用例的執行結果;可惜的是,仍然沒有覆蓋率統計。

?????????

?

4.???????其他常用語言的單元測試工具

除了上文提到的幾種開發語言和平臺,在日常編程活動中,可能會遇到的還有perl,tcl,pythonOO語言。

一般來說,這些語言有著龐大的第三方package支持。因此,一般來說,類似于android平臺內置支持Junit框架,這些語言也有相應的支持。舉個例子,perl支持包列表,自從perl語言創世以來,perl testing這個模塊就支持全面的測試。感興趣的讀者,可以閱讀一下這方面的書籍。

總結

以上是生活随笔為你收集整理的常见单元测试工具介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。