TestContext.TestTempDirectory 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會獲得一個與目前執行測試獨有的暫存目錄。
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 / \\?\ 前綴),後者不保證會啟用,且外部工具通常不會遵守。 如果執行的結果目錄太深無法保留該餘裕,或無法寫入(例如只讀輸出目錄),則該目錄會被建立在系統暫存目錄下。