日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

c# 单元测试工程如何取得当前项目路径

發(fā)布時(shí)間:2023/12/19 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 单元测试工程如何取得当前项目路径 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:

C#工程項(xiàng)目中有些配置文件,數(shù)據(jù)文件等不是C#工程文件,但是程序中需要訪問,如果寫成絕對路徑不利于程序的遷移,所以必須寫成相對路徑。取得相對路徑的方法很多,網(wǎng)上的例子也很多,基本上是七種吧,這里不再贅述,

請看此鏈接:點(diǎn)擊打開鏈接

但是現(xiàn)在我利用VS2010中的項(xiàng)目創(chuàng)建單元測試功能,對我的項(xiàng)目進(jìn)行測試。測試工程使用上面的其中方法就不可行了。測試工程是依賴于原有的工程的。在bin/debug/生成的exe也是你被測試的工程exe。因此使用process,environment,appication類都取不到當(dāng)前工程路徑。比如在我的機(jī)器上string str = Application.StartupPath;取到的路徑就是VS2010的路徑【C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE】

那么問題來了,我們?nèi)绾稳〉綔y試工程的當(dāng)前路徑呢

一.程序集

? ? 觀察bin/debug目錄,我們之前通過Appication.StartupPath等方法能夠取到當(dāng)前工程的相對目錄是因?yàn)?exe可執(zhí)行文件的存在。但是測試工程中沒有測試工程的exe,所以其他方法取不到。但是觀察發(fā)現(xiàn),目錄下面生成了測試工程的dll。dll是程序集。只要我們?nèi)〉贸绦蚣窂饺缓筮M(jìn)行處理即可。

Assembly.CodeBase屬性:取得程序集位置

參考:點(diǎn)擊打開鏈接

因此:

string str=Assembly.GetExecutingAssembly().CodeBase;(using System.Reflection;)

即可取到程序集路徑但是注意這個(gè)路徑前面有:file:///。以及后面的.dll名稱。因此我們需要進(jìn)行字符處理


二.字符處理

? ? 主要是去除開頭的file:///和結(jié)尾的dll名稱 代碼如下:

三.注意事項(xiàng)

? ? 這里取得路徑方法并不局限與測試工程。可以應(yīng)用于使用基本的方法取不到的其他場合。 在具體工程使用時(shí):創(chuàng)建測試工程會(huì)生成一個(gè)solution items。這個(gè)配置文件目前尚未研究,但是如果沒有了這個(gè)文件,通過Assembly.GetExecutingAssembly().CodeBase方法式取不到dll路徑的

轉(zhuǎn)載于:https://www.cnblogs.com/stoneFang/p/6715318.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的c# 单元测试工程如何取得当前项目路径的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。