c# 单元测试工程如何取得当前项目路径
前言:
C#工程項目中有些配置文件,數據文件等不是C#工程文件,但是程序中需要訪問,如果寫成絕對路徑不利于程序的遷移,所以必須寫成相對路徑。取得相對路徑的方法很多,網上的例子也很多,基本上是七種吧,這里不再贅述,
請看此鏈接:點擊打開鏈接
但是現在我利用VS2010中的項目創建單元測試功能,對我的項目進行測試。測試工程使用上面的其中方法就不可行了。測試工程是依賴于原有的工程的。在bin/debug/生成的exe也是你被測試的工程exe。因此使用process,environment,appication類都取不到當前工程路徑。比如在我的機器上string str = Application.StartupPath;取到的路徑就是VS2010的路徑【C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE】
那么問題來了,我們如何取到測試工程的當前路徑呢
一.程序集
? ? 觀察bin/debug目錄,我們之前通過Appication.StartupPath等方法能夠取到當前工程的相對目錄是因為.exe可執行文件的存在。但是測試工程中沒有測試工程的exe,所以其他方法取不到。但是觀察發現,目錄下面生成了測試工程的dll。dll是程序集。只要我們取得程序集路徑然后進行處理即可。
Assembly.CodeBase屬性:取得程序集位置
參考:點擊打開鏈接
因此:
string str=Assembly.GetExecutingAssembly().CodeBase;(using System.Reflection;)
即可取到程序集路徑但是注意這個路徑前面有:file:///。以及后面的.dll名稱。因此我們需要進行字符處理
二.字符處理
? ? 主要是去除開頭的file:///和結尾的dll名稱 代碼如下:三.注意事項
? ? 這里取得路徑方法并不局限與測試工程。可以應用于使用基本的方法取不到的其他場合。 在具體工程使用時:創建測試工程會生成一個solution items。這個配置文件目前尚未研究,但是如果沒有了這個文件,通過Assembly.GetExecutingAssembly().CodeBase方法式取不到dll路徑的轉載于:https://www.cnblogs.com/stoneFang/p/6715318.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c# 单元测试工程如何取得当前项目路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换iPhone6了!4招完美转移通讯录
- 下一篇: Visual Studio + C# +