如何设置MS Test项目的工作目录

时间:2013-03-21 09:04:07

标签: visual-studio-2012 mstest

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

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

3 个答案:

答案 0 :(得分:4)

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

修改

正如Rohit.Net所指出的,当您选择Run All Tests时,默认路径将位于TestResults下。使用runsettings文件时也是如此。当您不使用DeploymentItems时,输出文件夹将是默认的工作目录,并且: -

  • 右键单击Visual Studio中的测试,然后选择运行/ debug或
  • 使用vstest.console.exe从命令行运行。

答案 1 :(得分:2)

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

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

  

C:\用户{userRunsTheTest} \应用程序数据\本地\ VSEQT \ QTAgent \ {GuidForThisRun}

为了让您的文件部署在这些文件夹中并且可以访问它们,您必须:

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

答案 2 :(得分:1)

当您从Visual Studio 2012中的测试资源管理器中选择Run All tests时,Acarlon的建议不起作用。

您将获得的默认路径类似于...\TestResults\Deploy_<YourName>2014-01-13 14_48_20\Out文件夹。

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

在我的情况下,我使用的是SQL CE,它被设置为资源文件,并且总是被编译并自己被放入Bin/Debug/Resource文件夹。