5

我使用TeamCity Professional持續構建和測試我的代碼。在TeamCity中禁用MSTest臨時目錄

我有一些基於MSTest的測試,可以在我的電腦上在VS2010中正常工作,但在構建服務器上失敗。

我探聽並發現,經過測試,TeamCity在它的TEMP_DIR(可配置)中創建一個臨時目錄,並僅將「第一關係」依賴關係複製到測試DLL。

例如:我的測試使用NHibernate.dll其複製到臨時目錄,但它的依賴(即NHibernate.ByteCode.Castle)不被複制,並導致測試失敗與IO.FileNotFound例外。

有沒有什麼辦法可以從測試項目輸出目錄(Test/bin/debug)運行測試?

如果不是,我該如何指定哪些DLL應該複製到臨時目錄中?

回答

13

您可以在解決方案中添加一個TestSettings文件,該文件將描述要部署的所有文件。

首先,添加一個TestSettings文件。打開它,並在「部署」選項卡上,添加所需的所有文件(您的.dll)。 然後在TeamCity上,在MSTest構建步驟中,指定要在「附加命令參數」區域中使用的TestSettings文件。例如:「/testsettings:Local.Testsettings」

這樣,您在部署項目中指定的所有文件都將被複制到臨時目錄中。

+0

優秀的,這節省了我的一天,你達人! –

+3

這幫了我 - 謝謝!兩條註釋可以幫助其他人:首先,我可以在TeamCity設置的「MSTest運行配置文件:」中指定xxx.Testsettings文件。其次,這個字段需要從TeamCity中的工作目錄中獲得文件的路徑,它本質上是存儲庫的最高級別。 – ruttopia