Подтвердить что ты не робот

Как установить рабочий каталог для проектов MS Test

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

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

4b9b3361

Ответ 1

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

Edit

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

  • Вы щелкните правой кнопкой мыши тест в Visual Studio и выберите "запустить/отладить" или
  • Вы запускаете из командной строки с помощью vstest.console.exe.

Ответ 2

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

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

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

Чтобы ваши файлы были развернуты в этой папке и получили к ним доступ, вы должны:

  • Установите Copy to Output Directory = Copy Always
  • В тесте, который нуждается в этих файлах, установите их как DeploymentItems.

Ответ 3

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

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

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

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