如何通过单元测试方法访问数据文件?

Thu*_*uck 5 c# unit-testing visual-studio-2010

这是我尝试访问文件的方式-

  1. 我在单元测试项目中添加了一个文件夹“ TestData”

  2. 通过添加->现有项目添加了一个文件。设置构建操作=无,复制到输出目录=总是复制

通过以下单元测试方法访问文件-

string fileName = System.IO.Path.Combine(
            System.IO.Path.GetDirectoryName(
            System.Reflection.Assembly.GetExecutingAssembly().Location), "TestData\\TestExcel2007File1.xlsx");

XmlDocument actual;
actual.Load(fileName);       //Throws exception saying cannot find part of the file path
Run Code Online (Sandbox Code Playgroud)

我也尝试将Method属性用作-

[TestMethod, DeploymentItem(@"Test Data\", @"Test Data\")]
Run Code Online (Sandbox Code Playgroud)

似乎没有任何工作。

生成的文件路径是

"D:\\MyProject\\TestResults\\MACHINE_NAME 2015-01-23 05_21_45\\Out\\TestData\\TestExcel2007File1.xlsx"
Run Code Online (Sandbox Code Playgroud)

并且Out文件夹没有TestData文件夹或Excel文件。

编辑:我引用的程序集存在于Out文件夹中。我正在使用Visual Studio 2010。

我在Visual Studio 2012的另一个项目中执行了相同的步骤,似乎可以找到该文件并按预期工作。

编辑2:我发现TestData文件夹复制到bin \ debug文件夹中,而不是在生成的路径中。但是引用的程序集将复制到生成的路径中!

编辑3:添加了一个测试设置文件并选中了“启用部署菜单”,在“其他文件和要部署的目录”列表中添加了TestData文件夹,但仍然无法使用。

Thu*_*uck 2

重新启动视觉工作室使其工作。甚至关闭并重新打开解决方案还不够!