Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# DeploymentItem fails to copy file for MSTest unit test

I'm having trouble getting an XSL file to be copied to the same directory as the test assembly when I use the DeploymentItem attribute on an MSTest unit test. I followed the chosen answer for this question and the file I need copied has its "Copy to Output Directory" set to "Copy Always". When I check my ProjectDir\bin directory (the Target directory), the file I want copied is indeed there, alongside the DLLs and PDBs.

I have a couple unit tests with the following setup:

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
}

The XSL test fails because when I check MSTest's TestResults\particularTestRun\Out directory, I see the DLLs and the PDBs, but my XSL file is not there. What I want to know is why the XSL file does not get copied alongside the DLLs and PDBs even when I explicitly tell Visual Studio to copy it there via DeploymentItem?

like image 483
Sarah Vessels Avatar asked Jan 25 '10 17:01

Sarah Vessels


1 Answers

Thanks to Marc Gravell's answer to a related question of mine, I tried updating my MSTest .testrunconfig file so that my XSL file is included in the 'Deployment' section. This lets my unit tests pass, but I'm still perturbed that I had to do this--shouldn't the combination of DeploymentItem and marking the file's properties in my project to copy to the output directory be sufficient?

like image 89
Sarah Vessels Avatar answered Sep 30 '22 01:09

Sarah Vessels