How to set the working directory for MS Test projects

流过昼夜 提交于 2019-12-03 16:16:52

问题


how can I set the working directory for MS Tests projects, like I can do it for normal application projects? My Component that is tested need to access some config files that are also used by other applications. So far I have to copy these files the bin/debug folder of my test project, as these files are expected to be in the working directory.

Is it possible to set a working directory for test projects?


回答1:


For those who use Visual Studio 2012, if you set the output directory of the test project under Properties|Build|OutputPath then that will become the working directory when you run the tests from Visual Studio (since it is using Vstest.console.exe). If you don't want to have your test dlls, etc output to the same directory as your other files and you don't want to have the other files as content in your test project (as suggested by Schaliasos) then you can set the path on startup in a method that has the [AssemblyInitialize] attribute. You do this by assigning System.Environment.CurrentDirectory as usual. You will probably want to have the working directory as a setting or read from a configuration file.

Edit

As pointed out by Rohit.Net, when you choose Run All Tests the default path would be under TestResults. The same applies when using a runsettings file. The output folder will be the default working directory when you are not using DeploymentItems and: -

  • You right click the test(s) in Visual Studio and choose to run / debug, or
  • You run from the command line using vstest.console.exe.



回答2:


The working directory for test projects is created at the time you start running your tests.

If you run them locally this is created in a folder TestResults inside your project folder. If you run them in remote machines a different folder is created in each test agent in the following path:

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

In order your files to be deployed in these folder and have access to them you have to:

  1. Set the Copy to Output Directory = Copy Always
  2. In the test that needs these files set them as DeploymentItems.



回答3:


Acarlon's suggestion does not work when you select Run All tests from Test Explorer in Visual Studio 2012.

The default path you would get is something like ...\TestResults\Deploy_<YourName>2014-01-13 14_48_20\Out folder.

Because of this there may be possibility that your DB would not be accessible when entity would try to open connection for running entity related Test.

In my case I am using SQL CE which is set as resource file and always compiled and gets itself dropped into the Bin/Debug/Resource folder.



来源:https://stackoverflow.com/questions/15543167/how-to-set-the-working-directory-for-ms-test-projects

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!