Тестовые ресурсы C # - PullRequest
       1

Тестовые ресурсы C #

7 голосов
/ 07 апреля 2011

Я использую Microsoft Visual Studio Test Framework, и для некоторых моих тестов в качестве входных данных требуется файл XML.В настоящее время я поместил их в папку Resource в своем TestProject, и я получаю к ним доступ по «.. \ .. \ what» пути.Я хотел бы получить совет относительно хорошей практики при использовании файлов ресурсов теста, поскольку я хотел бы повторно использовать свой тест во всех этих ситуациях - непосредственно из VS 2010 - во время процесса сборки на сервере - в среде непрерывной интеграции в прозрачной (ипростой) способ.

Ответы [ 4 ]

10 голосов
/ 07 апреля 2011

Прежде всего, я обычно стараюсь уменьшить необходимость полагаться на файловую систему вообще во время тестирования (вводя некоторую абстракцию для файловой системы, чтобы можно было смоделировать доступ к файловой системе).

Если это невозможно, я включаю такие файлы в тестовый проект, в подпапку с именем TestData или что-то подобное. Затем я установил «Копировать в выходной каталог» на «Всегда копировать», чтобы файл был включен в выходной файл и находился в месте, известном относительно тестовой сборки (независимо от того, выполняется ли сборка внутри Visual Студия или на сервере сборки). Это работает очень хорошо, пока тестируемый код не изменяет файлы, а нужен только для чтения данных.

2 голосов
/ 11 марта 2013

Я бы предложил подход из следующего ответа . Это похожий вопрос. Этот подход использует атрибут DeploymentItem, также используемый при проведении модульного тестирования на основе данных.

0 голосов
/ 07 апреля 2011

Мы используем TFS2010 для CI. Весь выходной файл помещен в папку Binaries. Для ресурса конфигурации, такого как XML, мы использовали опцию Копировать в выходной каталог как Копировать всегда. Поэтому он всегда будет помещаться в выходные каталоги.

0 голосов
/ 07 апреля 2011

Я делаю что-то подобное в одном из моих интеграционных тестов; и я решил это так же, как вы. Пока ваш файл проверен в системе контроля версий и вы используете относительный путь (который выглядит так, как вы), он должен работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...