2015-08-24 59 views
1

很多人奮鬥relative path in DeploymentItem。相對路徑來自解決方案文件夾。這隻適用於從Visual Studio運行時,因爲mstest.exe是以編譯項目(而不是sln文件)作爲dll啓動的,因此無法正確確定部署項目的相對路徑。如何在MSTest中爲DeploymentItem設置相對路徑?

I have found我應該通過RelativePathRoot元素在testrun.config中設置DeploymentItem相對路徑。但是RelativePathRoot幾乎沒有文檔,這很奇怪。你如何設置相對路徑爲MSTest

回答

2

正確的方法是在調用MSTest.exe時將工作目錄設置爲解決方案目錄。這很容易如何解決DeploymentItem問題。

這意味着如果您在存儲庫中有多個項目和多個解決方案(每個解決方案都包含其中一些項目),則所有這些解決方案(sln文件)都必須位於同一個目錄中。因爲從任何解決方案到一個項目的相對路徑必須相同。所以我強烈建議有一個名爲的根目錄解決方案以及所有這些sln文件裏面。

如果測試項目包含在兩個不同目錄中的不同解決方案中,則會有與DeploymentItem不同的相對路徑,因此在這兩種解決方案中都不會正確配置帶有deploymentPath的MSTest。

+0

我喜歡這個答案。你如何從命令行執行它?謝謝。 – granadaCoder

+0

是的,無論是從命令行還是那裏都有TeamCity持續集成中的「工作目錄」設置,每次提交都運行mstests.exe。 – qub1n

+1

好的。你給了我我需要的提示。對於未來的讀者.........在我打電話給MsTest.exe之前......我做一個「CD。\ FolderWhereMySolutionResides」。然後在DeploymentItem定義中,我有一個相對路徑,以必要的文件.....基於.sln的位置(也就是同一個FolderWhereMySolutionResides文件夾)。 Mine看起來像這樣:[DeploymentItem(@「。\ packages \ MyNugetPackage.1.2.3.4 \ lib \ net45 \ SomeDll.dll」)] – granadaCoder

相關問題