2016-12-30 238 views
1

我有一個單元測試項目和庫項目。我想使用庫項目中的pdf文件作爲模板。當我使用Environment.CurrentDirectory時,我得到了單元測試項目的路徑,但是我想要獲取庫項目的路徑來引用pdf文件。如何從單元測試中獲取項目文件夾中的路徑

Path.Combine(Environment.CurrentDirectory, "../PDFs/template.pdf"); 

執行單元測試時,在庫項目中獲取文件路徑的等效語句是什麼?

回答

1

你不能。單元測試項目具有引用的程序集在其bin文件夾和副本,不知道原來的「源」位置(也不應該)。

單元測試應該能夠在真空中執行,而不是依靠的東西在文件系統存在於其他地方(最好是在所有不依賴於文件系統或其他外部資源)。

的假定來解決這個問題的唯一辦法是,以確保您的「template.pdf」複製到單元測試的輸出目錄,可能與一個生成後步驟。更好的方法是將模板包含在單元測試項目中。

+0

後,我添加模板測試項目的建議,我用下面的語句來獲取路徑Path.GetFullPath(Path.Combine(Environment.CurrentDirectory,「../../PDFs/template.pdf」)) – billboard

+0

@billboard聽起來好像會起作用(再次,可能應該在某個時候找到另一種方法......)你覺得我應該在我的答案中包括這個嗎? – BradleyDotNET

+0

在將此標記爲答案之前,我有一個後續問題,因此將模板存儲在庫中是沒有用的。因爲沒有人使用庫可以訪問這些文件,我是否正確?在這種情況下,有一個潛在的使用錯誤的模板和庫將拋出異常 – billboard

相關問題