C# 如何打开测试项目代码文件夹中的文件?(Visual Studio 2008和.NET C)

C# 如何打开测试项目代码文件夹中的文件?(Visual Studio 2008和.NET C),c#,.net,visual-studio,visual-studio-2008,unit-testing,C#,.net,Visual Studio,Visual Studio 2008,Unit Testing,在VisualStudio上运行测试项目时,我使用下面的代码访问测试项目代码文件夹中的文件 var Location = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName ); var FileLocation = Path.Combine( Location

在VisualStudio上运行测试项目时,我使用下面的代码访问测试项目代码文件夹中的文件

var Location = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName
);
var FileLocation = Path.Combine(
            Location
            ,@"..\..\..\TestProject1\App_Data\data.xml"
            );

还有另一种更好的方法吗?

您是说您试图在运行测试本身的上下文中查找文件吗?如果是这样,您应该查看对象,特别是属性。您还应该将该文件标记为。

您是说您试图在运行测试本身的上下文中查找该文件吗?如果是这样,您应该查看对象,特别是属性。您还应该将文件标记为。

获取VSTS单元测试的deploymetn目录的最可靠方法是使用TestContext类。如果您在给定的TestClass上定义类型为TestContext且名称为TestContext的公共属性,则这将自动连接

private TestContext _context;
public TestContext TestContext { get { return _context;} set { _context = value } }

TestContext类有几个成员,它们指向测试代码的实际部署。我不熟悉web应用程序是如何部署的,但是此类上的属性之一应该将您指向正确的目录。

获取VSTS单元测试的deploymetn目录的最可靠方法是使用TestContext类。如果您在给定的TestClass上定义类型为TestContext且名称为TestContext的公共属性,则这将自动连接

private TestContext _context;
public TestContext TestContext { get { return _context;} set { _context = value } }

TestContext类有几个成员,它们指向测试代码的实际部署。我不熟悉web应用程序是如何部署的,但此类上的一个属性应将您指向正确的目录。

您还应将该文件标记为DeploymentItem。如何做到这一点?将[DeploymentItem]属性添加到测试中。Dod会在Google上搜索它,但一个合理的开始是:您还应该将该文件标记为DeploymentItem。如何做到这一点?将[DeploymentItem]属性添加到测试中。Dod在谷歌上搜索它,但一个合理的开始是:只是为了记录:它不是一个网络应用程序。为什么是App_数据文件夹?只是为了记录:它不是一个网络应用程序。为什么是App_数据文件夹?