2013-03-21 5 views
13

Как настроить рабочий каталог для проектов MS Tests, например, я могу сделать это для обычных проектов приложений? Мой компонент, который протестирован, должен получить доступ к некоторым файлам конфигурации, которые также используются другими приложениями. Пока мне приходится копировать эти файлы в папку bin/debug моего тестового проекта, так как ожидается, что эти файлы будут находиться в рабочем каталоге.Как установить рабочий каталог для проектов MS Test

Возможно ли установить рабочий каталог для тестовых проектов?

ответ

2

Рабочий каталог для тестовых проектов создается во время запуска ваших тестов.

Если вы запускаете их локально, это создается в папке TestResults внутри вашей папки проекта. Если запустить их в удаленных компьютерах другая папка создается в каждом тестовом агента по следующему пути:

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

для файлов, которые будут развернуты в этих папках и иметь доступ к ним необходимо:

  1. установите переключатель Copy to Output Directory = Copy Always
  2. в тесте, который нуждается в эти файлы установить их в качестве DeploymentItems.
+1

На моей машине рабочий каталог defenetly bin/debug od Test project. Идея использовать копию всегда приходила ко мне, но я бы предпочел не копировать все необходимые элементы в тестовый выходной каталог. – Thomas

3

Для тех, кто использует Visual Studio 2012, если вы установите выходной каталог тестового проекта в разделе «Свойства» | «Build | OutputPath», то он станет рабочим каталогом при запуске тестов из Visual Studio (поскольку он использует Vstest.console.exe). Если вы не хотите, чтобы ваши тестовые dll и т. Д. Выходили в тот же каталог, что и ваши другие файлы, и вы не хотите, чтобы другие файлы были как контент в вашем тестовом проекте (как предложено Schaliasos), вы можете установить путь при запуске в методе, который имеет атрибут [AssemblyInitialize]. Вы делаете это, назначая System.Environment.CurrentDirectory, как обычно. Вероятно, вы захотите, чтобы рабочий каталог был настроен или читался из файла конфигурации.

Редактировать

Как отметил Rohit.Net, когда вы выбираете Run All Tests путь по умолчанию будет находиться под TestResults. То же самое происходит при использовании файла runsettings. Папка вывода будет рабочий каталог по умолчанию, когда вы не используете DeploymentItems и: -

  • щелчку правой кнопкой мыши тест (ы) в Visual Studio и выбрать для запуска/отладки или
  • запускается из командной строки, используя vstest.console.exe.
1

предложение Acarlon не работает при выборе Run All tests из Test Explorer, в Visual Studio 2012.

путь по умолчанию, вы получите что-то вроде ...\TestResults\Deploy_<YourName>2014-01-13 14_48_20\Out папки.

Из-за этого может возникнуть вероятность того, что ваша БД не будет доступна, если сущность попытается открыть соединение для запуска тестируемого объекта.

В моем случае я использую SQL CE, который задан как файл ресурсов и всегда скомпилирован и сам попадает в папку Bin/Debug/Resource.

Смежные вопросы