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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
用NUnit跑C#和C++的單元測試
作者:網絡轉載 發布時間:[ 2013/4/2 14:12:20 ] 推薦標簽:

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

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

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

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

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

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

  4. 編譯產生的assemly可以直接在NUnit里面跑了。

  很酷!

  順便記下幾點:

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

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

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

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

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

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲三级大片 | 午夜看看 | 亚洲专区在线视频 | 啪啪亚洲| 国产视频一区二区在线观看 | 亚洲欧美国产日本 | 欧美在线欧美 | 美女视频很黄很a免费国产 美女涩涩网站 | 色婷婷色| 下面一进一出好爽视频 | 天天噜噜色 | a性视频 | 男人下面进女人下面视频免费 | 日韩欧美视频一区二区在线观看 | 亚洲午夜18| 欧美日韩加勒比一区二区三区 | 最近中文字幕免费4 | 国产成人免费视频 | 免费黄色地址 | 免费一级毛片在播放视频 | 18p爽视频在线观看免费 | 亚洲色图第四页 | 丰满毛片| 五月网婷婷 | 在线中文字幕网 | 日本久久精品 | 国产精品亚洲精品日韩动图 | 国产精品久久久亚洲动漫 | 免费一看一级欧美 | 午夜小影院 | 成人无遮挡毛片免费看 | 青春草在线免费观看 | 一区二区三区福利视频 | 成人久久18免费网站 | 男女视频网站在线观看 | 亚洲综合久久1区2区3区 | 日韩小视频在线 | 激情综合网五月激情 | 亚洲日本韩国在线 | 亚洲成年| 成人亚洲网站www在线观看 |