首頁 >後端開發 >C++ >如何在單位測試中可靠地確定測試組件的目錄路徑?

如何在單位測試中可靠地確定測試組件的目錄路徑?

Barbara Streisand
Barbara Streisand原創
2025-01-31 22:46:09593瀏覽

How Can I Reliably Determine the Directory Path of My Test Assembly in Unit Tests?

>>>在單元測試中訪問文件:一種可靠的方法,用於確定測試程序集的目錄

>單元測試通常需要相對於測試組件訪問文件。 但是,由於測試環境(例如測試跑者,臨時目錄)的變化,找到組件目錄可能很棘手。本指南提供了一個強大的解決方案。

查找彙編目錄 的挑戰

目的是獲得當前組件的目錄路徑,不包括文件名。 常見的方法通常不足:

  • Environment.CurrentDirectory:這返回當前的工作目錄,這可能與總成的位置有所不同。 例如,在某些測試跑者中,它指向跑步者的目錄,而不是測試項目的目錄。
  • Assembly.GetAssembly(typeof(AssemblyType)).Location:這些提供了完整的彙編路徑Assembly.GetExecutingAssembly().Location包括fileName,而不僅僅是目錄。
>

解決方案:利用Assembly.CodeBase>

鍵使用

。該屬性將大會的路徑返回為URI。 通過使用Assembly.CodeBaseUriBuilder.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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn