Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 如何设置MS测试项目的工作目录_Visual Studio 2012_Mstest - Fatal编程技术网

Visual studio 2012 如何设置MS测试项目的工作目录

Visual studio 2012 如何设置MS测试项目的工作目录,visual-studio-2012,mstest,Visual Studio 2012,Mstest,如何为MS测试项目设置工作目录,就像我可以为普通应用程序项目设置工作目录一样?我的被测试组件需要访问其他应用程序也使用的一些配置文件。到目前为止,我必须将这些文件复制到测试项目的bin/debug文件夹中,因为这些文件应该在工作目录中 是否可以为测试项目设置工作目录?测试项目的工作目录是在您开始运行测试时创建的 如果在本地运行它们,则会在项目文件夹中的文件夹TestResults中创建。如果在远程计算机中运行它们,则会在每个测试代理中按以下路径创建不同的文件夹: C:\Users{userrun

如何为MS测试项目设置工作目录,就像我可以为普通应用程序项目设置工作目录一样?我的被测试组件需要访问其他应用程序也使用的一些配置文件。到目前为止,我必须将这些文件复制到测试项目的bin/debug文件夹中,因为这些文件应该在工作目录中


是否可以为测试项目设置工作目录?

测试项目的工作目录是在您开始运行测试时创建的

如果在本地运行它们,则会在项目文件夹中的文件夹
TestResults
中创建。如果在远程计算机中运行它们,则会在每个测试代理中按以下路径创建不同的文件夹:

C:\Users{userrunsTest}\AppData\Local\VSEQT\QTAgent\{GuidForThisRun}

要在这些文件夹中部署文件并访问它们,您必须:

  • 设置
    Copy to Output Directory=Copy Always
  • 在需要这些文件的测试中,将它们设置为

  • 对于使用Visual Studio 2012的用户,如果在Properties | Build | OutputPath下设置测试项目的输出目录,那么当您从Visual Studio运行测试时,该目录将成为工作目录(因为它使用的是Vstest.console.exe)。如果您不希望将测试DLL等输出到与其他文件相同的目录,并且不希望将其他文件作为测试项目中的内容(如Schaliasos所建议的),则可以使用具有
    [AssemblyInitialize]
    属性的方法设置启动时的路径。您可以像往常一样通过分配
    System.Environment.CurrentDirectory
    来实现这一点。您可能希望将工作目录作为设置或从配置文件读取

    编辑

    正如Rohit.Net所指出的,当您选择运行所有测试时,默认路径将在TestResults下。当使用
    runsettings
    文件时,同样适用。当您不使用DeploymentItems时,输出文件夹将是默认的工作目录,并且:-

    • 在Visual Studio中右键单击测试并选择运行/调试,或
    • 您可以使用vstest.console.exe从命令行运行

    Acarlon的建议在Visual Studio 2012的测试资源管理器中选择“运行所有测试”时无效

    您将获得的默认路径类似于
    …\TestResults\Deploy\u 2014-01-13 14\u 48\u 20\Out
    文件夹

    因此,当实体试图打开连接以运行实体相关测试时,可能无法访问数据库


    在我的例子中,我使用的是SQL CE,它被设置为资源文件,并且总是被编译并将自己放入
    Bin/Debug/resource
    文件夹中。

    在我的机器上,工作目录是测试项目的防御性Bin/Debug。使用copy的想法一直在我脑海中浮现,但我宁愿不将所有需要的项目复制到测试输出目录。我建议避免使用
    System.Environment.CurrentDirectory
    来设置当前工作目录,如post.Related post中所述-