亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 中文字幕日本一区久久 | 91精品视频免费 | 嘿嘿视频在线 | 120秒在线观看免费 128tv在线观看 | h视频在线观看视频观看 | 操一操日一日 | 一级毛片毛片毛片毛毛片 | 久久香蕉国产线看观看亚洲片 | 欧美日产国产亚洲综合图区一 | 亚洲激情在线 | 最近中文字幕2019高清8? | 717影院理论午夜伦不卡久久 | 成年在线视频免费视频观看 | 翁熄性放纵苏玥完整小说 | 日韩免费毛片全部不收费 | 久久午夜激情 | www.成人网 | 日韩在线免费视频观看 | 可以免费看毛片的网站 | 日本天堂网站 | 污视频网页 | 欧美3区| 日韩中文字幕一区二区不卡 | 欧美日本道免费一区二区三区 | 日韩精品网址 | 99视频在线免费 | 黄色片视频在线播放 | 毛片在线看免费 | 亚洲国产精品久久久久久 | 日日狠狠久久偷偷四色综合免费 | 国产成人v片视频在线观看 国产成人v视频在线观看 | 成人中文字幕在线高清 | 欧美日韩一区二区亚洲 | 久久激情综合色丁香 | 欧美呻吟| 99精品欧美 | 一级bbbb视频bbbb | 免费看的黄色录像 | 大黄香蕉视频 | 色成人综合 | 日韩欧美色综合 |