如何为MS Tests项目设置工作目录,就像我可以为普通应用程序项目做的那样?我测试的组件需要访问一些其他应用程序也使用的配置文件。到目前为止,我必须将这些文件复制到我的测试项目的bin / debug文件夹中,因为这些文件应该在工作目录中。
是否可以为测试项目设置工作目录?
答案 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时,输出文件夹将是默认的工作目录,并且: -
答案 1 :(得分:2)
测试项目的工作目录是在您开始运行测试时创建的。
如果您在本地运行它们,则会在项目文件夹中的文件夹TestResults
中创建。如果在远程计算机中运行它们,则会在以下路径中的每个测试代理中创建不同的文件夹:
C:\用户{userRunsTheTest} \应用程序数据\本地\ VSEQT \ QTAgent \ {GuidForThisRun}
为了让您的文件部署在这些文件夹中并且可以访问它们,您必须:
Copy to Output Directory = Copy Always
答案 2 :(得分:1)
当您从Visual Studio 2012中的测试资源管理器中选择Run All tests
时,Acarlon的建议不起作用。
您将获得的默认路径类似于...\TestResults\Deploy_<YourName>2014-01-13 14_48_20\Out
文件夹。
因此,当实体尝试打开连接以运行与实体相关的测试时,可能无法访问您的数据库。
在我的情况下,我使用的是SQL CE,它被设置为资源文件,并且总是被编译并自己被放入Bin/Debug/Resource
文件夹。