亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 人人爱国产 | 一级黄色免费网站 | 亚洲剧场午夜在线观看 | 日韩日韩日韩手机看片自拍 | 一二三四在线视频社区8 | 国产ppp在线视频在线观看 | 久久精品国产91久久麻豆自制 | 亚洲精彩视频 | 色列里番h本全彩无遮挡影片 | 午夜影院一区 | 全午夜免费一级毛片 | 国产理伦 | 国产麻豆精品高清在线播放 | 精品久久久久久 | 999精品久久久中文字幕蜜桃 | 天天操夜夜做 | 男女午夜特黄毛片免费 | 午夜国产大片免费观看 | 免费看h片的网站 | 美日韩三级 | 黄色网址中文字幕 | 国产一二三区在线 | 欧美二级 | 欧美影院一区二区三区 | 午夜成人在线视频 | 中文字幕在线看视频一区二区三区 | 91免费永久国产在线观看 | 日韩一区视频在线 | 天天干国产| 很很在线视频观看 | 成年网站在线播放 | 一本大道久东京 | 嘿嘿嘿在线观看 | 亚洲乱人伦精品图片 | 曰皮全部过程视频免费国产 | 国产在线综合视频 | 日韩视频欧美视频 | 狠狠色噜噜综合社区 | 黄色一级生活片 | 欧美亚洲国产成人精品 | 最近中文国语字幕在线播放视频 |