>>>在單元測試中訪問文件:一種可靠的方法,用於確定測試程序集的目錄
>單元測試通常需要相對於測試組件訪問文件。 但是,由於測試環境(例如測試跑者,臨時目錄)的變化,找到組件目錄可能很棘手。本指南提供了一個強大的解決方案。
查找彙編目錄 的挑戰
目的是獲得當前組件的目錄路徑,不包括文件名。 常見的方法通常不足:
Environment.CurrentDirectory
:這返回當前的工作目錄,這可能與總成的位置有所不同。 例如,在某些測試跑者中,它指向跑步者的目錄,而不是測試項目的目錄。
Assembly.GetAssembly(typeof(AssemblyType)).Location
:這些提供了完整的彙編路徑Assembly.GetExecutingAssembly().Location
包括fileName,而不僅僅是目錄。
解決方案:利用Assembly.CodeBase
>
。該屬性將大會的路徑返回為URI。 通過使用Assembly.CodeBase
和UriBuilder.UnescapeDataString
,我們可以可靠地提取目錄路徑:Path.GetDirectoryName
>
<code class="language-csharp">public static string GetAssemblyDirectory() { string codeBase = Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); string path = Uri.UnescapeDataString(uri.Path); return Path.GetDirectoryName(path); }</code>此方法始終返回正確的目錄路徑,無論測試環境如何
以上是如何在單位測試中可靠地確定測試組件的目錄路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!