簡體   English   中英

C#DeploymentItem無法復制MSTest單元測試的文件

[英]C# DeploymentItem fails to copy file for MSTest unit test

當我在MSTest單元測試中使用DeploymentItem屬性時,我無法將XSL文件復制到與測試程序集相同的目錄。 我按照所選答案解決了這個問題 ,我需要復制的文件將其“復制到輸出目錄”設置為“始終復制”。 當我檢查我的ProjectDir \\ bin目錄(目標目錄)時,我想復制的文件確實存在,與DLL和PDB一起。

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

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 \\ specificTestRun \\ Out目錄時,我看到了DLL和PDB,但我的XSL文件不存在。 我想知道的是, 為什么 XSL文件不會與DLL和PDB一起被復制,即使我明確告訴Visual Studio通過DeploymentItem將其復制到那里?

感謝Marc Gravell對我的相關問題的回答 ,我嘗試更新我的MSTest .testrunco​​nfig文件,以便我的XSL文件包含在“部署”部分中。 這讓我的單元測試通過了,但我仍然感到不安,我必須這樣做 - 不應該將DeploymentItem的組合和在我的項目中標記文件的屬性復制到輸出目錄是否足夠?

我們遇到類似的情況,其中DeploymentItem屬性未按預期工作。 我們也使用64位機器,項目平台設置為“任何CPU”。 作為一種解決方法,我們將單元測試所需的文件作為單元測試項目的鏈接包含在內,並將其“復制到輸出目錄”設置為“始終復制”。

據稱,除非輸出目錄是文字字符串,否則VS2008部署項將無提示失敗。 嗯^ _ ^

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

我有一台64位機器,我正在測試的項目和單元測試項目的平台目標都是“任何CPU”。

我發現只有在我選擇“在64位機器上以64位進程運行測試”時才復制部署項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM