2010-01-25 46 views
10

我在MSTest單元測試中使用DeploymentItem屬性時,無法將XSL文件複製到與測試程序集相同的目錄。我遵循this question的選擇答案,我需要複製的文件將其「複製到輸出目錄」設置爲「始終複製」。當我檢查我的ProjectDir \ bin目錄(目標目錄)時,我想複製的文件確實存在,與DLL和PDB一起。C#DeploymentItem無法爲MSTest單元測試複製文件

我有幾個單元測試有以下設置:

private const string DLL = "Service.dll"; 
private const string XSL_PATH = "transform.xsl"; 

[TestInitialize] 
public void InitializeTest() 
{ 
    Assert.IsTrue(File.Exists(DLL)); // passes 
} 

[TestMethod] 
[DeploymentItem(DLL)] 
[DeploymentItem(XSL_PATH)] 
public void XmlToResultsTest() 
{ 
    Assert.IsTrue(File.Exists(XSL_PATH)); // fails 
} 

的XSL測試失敗,因爲當我檢查的MSTest的TestResults \ particularTestRun \ Out目錄,我看到的DLL和PDBS,但我的XSL文件不在這裏。我想知道的是爲什麼即使我明確告訴Visual Studio通過DeploymentItem將其複製到那裏,XSL文件也不會與DLL和PDB一起被複制?

回答

10

感謝Marc Gravell's answer到我的一個相關問題,我試着更新我的MSTest .testrunco​​nfig文件,以便我的XSL文件包含在「部署」部分。這讓我的單元測試通過,但我仍然不安,我不得不這樣做 - 不應該組合DeploymentItem和標記文件的屬性在我的項目中複製到輸出目錄是足夠的?

+0

我也有同樣的問題薩拉 - 非常混淆的確實! –

1

據稱,VS2008部署項默默無效,除非輸出目錄是文字字符串。嗯^ _^

+0

你的源代碼在哪裏呢?如果那是真的,那真是太瘋狂了,我想要我的字符串常量,當它! –

+0

不是我親自複製的東西,但是我有一些部署問題並且搜索到了,發現很多博客說他們有部署項目的問題,例如: http://sergeyshishkin.spaces.live.com/blog/cns! 9F19E53BA9C1D63F!185.entry 最後,我在.testrunco​​nfig文件中選擇了全局部署文件夾。 – andrewb

1

我有同樣的問題,即使我在部署項目中使用文字字符串。我甚至嘗試將該文件添加到測試設置的「部署」部分,該測試設置也不起作用。原來問題與測試平臺有關。

我有一臺64位的機器,我測試的項目和單元測試項目的平臺目標都是'任何CPU'。

我發現,如果我在一個64位的過程中選擇「運行測試64位計算機上部署項目只複製」。

1

我們在工作中有類似的情況,其中DeploymentItem屬性未如預期工作我們還使用了64位機器,項目平臺設置爲「Any CPU」,作爲解決方法,我們將單元測試所需的文件作爲單元測試項目的鏈接,並將其「複製到輸出目錄」設置爲「複製總是」

相關問題