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
?
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?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With