Организация «Образцов тестовых файлов» в Visual Studio и SVN - PullRequest
0 голосов
/ 03 июля 2011

Мой вопрос касается тестовых файлов , под которыми я подразумеваю некодовые файлы, от которых зависят некоторые из моих автоматических тестов (* .xml, * .xls, * .jpg и т. Д.).Поэтому я буду использовать образцы тестовых файлов , чтобы не путать их с тестовыми файлами, то есть с файлами кода, содержащими тесты.

Большинство моих автоматических тестов - это изолированные модульные тесты, но ятакже есть несколько интеграционных тестов в одном проекте (MyApp.Tests.Integration), которые проверяют поведение классов, взаимодействующих с внешними зависимостями.

Моя коллекция примеров тестовых файлов содержится в другом проекте в моем решении под названием MyApp.Tests.TestFiles.У каждого файла есть свойства сборки «Содержимое» и «Копировать, если новее», установленные в его свойствах.

MyApp.Tests.TestFiles

Когда я запускаю свои тесты, решение создается и файлы копируются в мой выходной каталог "bin \ Debug", и мои интеграционные тесты ссылаются на них там.

Проблема, которая вызвала вопрос, заключалась в том, что я отправлял свои тестовые файлы в мой svn-репозиторий, который размещен в сети с ограниченным объемом памяти, наряду с моим кодом.Файлы занимали слишком много места в хранилище.С тех пор я реконструировал хранилище и уменьшил все образцы тестовых файлов до минимального размера.

В большинстве случаев образцы тестовых файлов вряд ли изменятся, поэтому я хочу, чтобы они были доступны для извлечения из моего репозитория с рабочимСкопируйте, нет никакой реальной причины держать их под контролем версий, пока я могу восстановить структуру каталогов MyApp.Tests.TestFiles \ TestFiles для выполнения тестов.

Это сценарий, я надеюсь на ответыв следующие моменты:

  • Есть ли лучший способ работы с этими файлами?
  • Было бы лучше оставить эти файлы где-то вне моего решения?
  • Могу ли я сохранить все необходимые файлы в моем хранилище SVN, но не под контролем версий?
  • Было бы полезно узнать больше о MSBuild?

1 Ответ

0 голосов
/ 03 июля 2011

Я сомневаюсь, что будет достигнуто соглашение о «лучшем» способе организации вещей. Я знаю, что в моей системе SCM я обычно хотел бы иметь одну папку, содержащую папку для развертываемого кода и тестового кода. Допустим, я создаю Widget и у меня есть DLL-библиотека MyLibrary. Тогда в папке Widget будет папка с именем MyLibrary и папка с именем MyLibrary_test. В VS я делаю то же самое и держу свой тестовый проект в том же решении, что и мой развертываемый проект. Я работаю один, поэтому большие команды могут найти другие подходящие стили организации.

Я рассматриваю свой тестовый код как развертываемый исходный код. Это в системе управления исходным кодом. SVN хранит файлы различий, поэтому хранение версионных копий ваших тестовых файлов не так уж и дорого. SVN даже пытается сохранить дельты в двоичных файлах, но иногда это не работает так, как можно надеяться . Я не верю, что SVN предназначен для хранения только одной последней копии исходного файла. Подход «дельта» не сработает так хорошо. В первый раз, когда вы случайно внесете изменения в тестовый файл, вам захочется вернуться назад и получить последнюю рабочую версию.

...