How to get build directory of a test project?
c#, visual-studio
Solution
Use the DeploymentItemAttribute attribute. To quote MSDN:
This attribute identifies files and directories that contain files that are used by the deployed test to run. The test engine makes a copy of the deployment items and places them in test deployment directory based upon the OutputDirectory specified or the default directory.
For example:
[TestClass]
public class MyUnitTest
{
[TestMethod()]
[DeploymentItem("myfile.txt")]
public void MyTestMethod()
{
string file = "myfile.txt";
Assert.IsTrue(File.Exists(file), "deployment failed: " + file +
" did not get deployed");
}
}
Of course assuming you are using MSTest as your testing framework.
Problem
I have a test project in which I needs to load an XLSX file. For that, I added a file with copy-always so that it ends up in the build directory, but all of the following return a wrong path: - `System.Reflection.Assembly.GetAssembly(typeof(testclass)).Location;` - `AppDomain.CurrentDomain.BaseDirectory` - `Directory.GetCurrentDirectory();` They all give me: `"C:\\Users\\username\\Documents\\visual-studio-projecten\\projectname\\TestResults\\username_ICT003 2012-06-20 12_07_06\\Out"` and I need `"C:\\Users\\username\\Documents\\visual-studio-projecten\\projectname\\TestProject\\bin\\Debug\\SupportFiles\\"` How do I accomplish that?