亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
用NUnit跑C#和C++的單元測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/4/2 14:12:20 ] 推薦標(biāo)簽:

  用NUnit跑C#和C++的單元測試  單元測試代碼

  這幾天打算用個自動化的單元測試框架來組織一些case,因為之前用過CppUnit,第一感覺是用它吧。剛好有個項目組做一個關(guān)于用NUnit的sharing,而且是兼容并包managed和native的case。想想可能能受到些啟發(fā),便跑去聽了一下。

  他們用的測試框架當(dāng)然是NUnit,跑C#的case自然不在話下,可是如何跑C++的case呢?不是CppUnit的改裝,而是另外一套東西,有同學(xué)已經(jīng)做出一個現(xiàn)成的工具了:GenTestAsm.,基本步驟如下:

  1. 用C++寫case,并export。

  2. 解析C++ DLL文件,得到export的case

  3. 自動寫C#代碼調(diào)用這些export的case(看著高深,可有規(guī)律的東西肯定能自動化)

  4. 編譯產(chǎn)生的assemly可以直接在NUnit里面跑了。

  很酷!

  順便記下幾點:

  1. NUnit和被測代碼是在同一個進(jìn)程里面,很容易由于被測代碼引起整個測試框架的crash,那么拿到終的report會有問題。雖說C#的case不容易crash(沒有指針?),但通過上述方法調(diào)用C++,讓它crash不是件難事。所有好是能做進(jìn)程外測試。

  2. NUnit使用shared copy的方法,使真正load進(jìn)來的dll并不是你編譯出來的那個,而是另外拷了一個,這樣在可以在不關(guān)閉NUnit的情況下rebuild被測工程。當(dāng)然,GetTestAsm也提供了Thunk DLL的技術(shù),在每個case開始時load DLL, 結(jié)束時unload DLL,也達(dá)到了這種效果。

  3. VC++中Additional Dependencies除了lib,還能加obj,這樣另外一個工程中的代碼可以直接編譯進(jìn)本工程了。這么做的目的是希望使用另外一個DLL中的未export的函數(shù)。但是因為obj不是同一個工程編譯出來的,一些工程設(shè)置上的不同可能會引起問題。

  4. LoadLibrary是可以load一個exe的,MSDN也說明了 --- 我竟然以前都沒注意到。當(dāng)然,寫一個exe純粹為了當(dāng)dll那有點不和諧了。我遇到過的在exe里export函數(shù),是為了在同一進(jìn)程中的插件里使用這些函數(shù)。

  不錯,可以考慮一下用NUnit,這樣case既可以是C#的,也可以是C++的,比較靈活。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 天天射天天草 | 日韩精品在线观看视频 | 麻豆国产在线观看免费 | 国产福利午夜 | 亚洲欧美日韩国产综合 | 日日日日干 | 日产国产欧美韩国在线 | 亚洲视频精品 | 国产一级一级片 | 日本高清h色视频在线观看 日本妇人成熟免费观看18 | 色哟哟在线网站 | 2017天天爽夜夜爽精品视频 | 又爽又黄又无遮挡的视频在线观看 | 国产男女视频在线观看 | 欧美成人在线免费 | 国产成人乱码一区二区三区在线 | 97视频在线观看免费播放 | 日韩欧美中文字幕一区 | 无遮挡黄动漫在线观看播放 | 狠狠操亚洲 | 妞干网在线观看 | 黄色片视频在线播放 | 国产成人a毛片在线 | 午夜看片网站 | 日本欧美一区二区三区高清 | 国产无内制服肉丝精品视频 | 在线观看男女男免费视频 | 亚洲91在线视频 | 35pao免费视频 | 日韩在线视频在线观看 | 成人抖音短视频 | 国产精品天天看特色大片不卡 | 黄色影院在线观看 | 成人永久福利免费观看 | 色站网| 欧美人xxx | 日韩人成免费网站大片 | 日本香蕉视频在线观看 | 黄色片一级片 | 亚洲第一伊人 | 日韩三级一区二区三区 |