亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 免费看黄视频在线观看 | 国产成人精品午夜视频' | 久久久亚洲精品国产 | 欧美日韩国产专区 | 青草视频在线观看免费网站 | 冈本视频污 | 日韩特级毛片免费观看视频 | 日韩高清欧美精品亚洲 | 小明网址 | 红色一级毛片 | 人人草人人干 | 国产日本在线视频 | 亚洲韩国欧美一区二区三区 | 久久成人黄色 | 香港三级日本三级人妇网站 | 日韩中文字幕一区二区不卡 | 老司机精品影院一区二区三区 | 特黄一级 | 美女私密福利第一导航 | 成人影院高清在线观看免费网站 | 亚洲天天综合网 | 国产一级淫片视频免费看 | 中文有码在线 | 老色批影院 | 国产一区二区三区免费观看 | 国产一区在线视频 | 天天上天天干 | 日韩视频第二页 | 看黄网站在线播放 | 中国美女一级a毛片录像在线 | 欧美激情网址 | 琪琪午夜免费影院在线观看 | 干操视频 | 一级欧美一级日韩片 | 最新日韩伦理片免费 | 中文字幕人成乱码在线观看 | 成人a大片在线观看 | 欧洲最暴性xxxⅹ | 黄色a视频在线观看 | 国内不卡1区2区 | 中国videos露脸hd |