語言

TestContext.TestTempDirectory 屬性

定義

會獲得一個與目前執行測試獨有的暫存目錄。

public virtual string? TestTempDirectory { get; }
member this.TestTempDirectory : string
Public Overridable ReadOnly Property TestTempDirectory As String

屬性值

備註

該目錄在首次存取時(懶惰地)建立,且是目前執行測試的唯一,包含每個資料驅動的方法案例 [DataRow]/[DynamicData] 。 因為每個測試(以及每個資料案例)都有自己的目錄,測試可以同時寫入,無需協調——即使組合語言是平行執行的。

這是一個*每個測試*目錄,因此 null 當從測試外存取時——例如從 [AssemblyInitialize]、 [ClassInitialize]、 [ClassCleanup]、 或 [AssemblyCleanup] —— 返回,且沒有單一擁有測試。

當測試通過時,該目錄會自動刪除,測試失敗時則保留,因此失敗測試的產物仍可檢查。 所有目錄(包括通過測試)可透過 MSTEST_TEST_TEMP_DIRECTORY_RETAIN 環境變數強制保留以進行除錯。 當測試透過 註冊檔案作為附件 AddResultFile(String)時,該目錄也會被保留,因為主機會在測試完成後收集該附件。

與 TestRunDirectory、 DeploymentDirectory、 ResultsDirectory、 TestRunResultsDirectoryTestResultsDirectory 和 —— 這些 、 —— 這些在整個測試過程中共享不同——這個目錄是由單一測試擁有的私人暫存空間。 用於測試執行時需要寫入的檔案;使用結果目錄來存放應該作為執行工件收集的檔案。

在 Windows 上,回傳路徑保持足夠短,以保留約 80 個字元的餘裕空間,低於經典MAX_PATH限制(260 個)給測試本身寫入的檔案,因此在其中建立的普通相對路徑不會溢出MAX_PATH。 此功能以 260 字元限制為目標,且不依賴長路徑選擇加入(LongPathsEnabled / \\?\ 前綴),後者不保證會啟用,且外部工具通常不會遵守。 如果執行的結果目錄太深無法保留該餘裕,或無法寫入(例如只讀輸出目錄),則該目錄會被建立在系統暫存目錄下。

適用於