Рекомендации по использованию тестовых файлов / каталогов в тестовых проектах Visual Studio 2010 C # - PullRequest
8 голосов
/ 27 января 2011

У меня есть тестовый проект в решении Visual Studio 2010, который тестирует другой проект, который является утилитой FTP. Тестовый проект нуждается в FTP-файлах здесь и там, поэтому я использую тестовый файл, чтобы перейти к методам утилит и убедиться, что он загружен / заархивирован / и т.д. В моем тестовом проекте у меня есть корневая папка с именем TestFiles, в которой находится один файл .txt. Я хочу, чтобы всякий раз, когда кто-то проверял решение из системы контроля версий и запускал модульные тесты, файл в этой папке захватывался и использовался в модульных тестах FTP.

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

copy $(ProjectDir)TestFiles\Test.txt $(ProjectDir)Debug\bin\Test.txt

Все, что я действительно хочу сделать, это убедиться, что я могу использовать относительный путь для любых локальных тестовых файлов, чтобы у меня не возникало проблем независимо от того, куда кто-то из моей команды проверяет проект (или если Foundation Server запускает автоматическую сборку и запускает модульные тесты для моего проекта).

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

ftp.uploadThisFileSomewhere(
AppDomain.CurrentDomain.BaseDirectory + "\\TestFiles\\Test.txt");

Итак, это правильный способ получить тестовый файл? Я не думаю, что это так, но я не могу найти хороший документ по лучшим практикам. Если это достаточно хорошо, как вы копируете / гарантируете относительное местоположение независимо от того, где проект построен / запущен ?

Ответы [ 4 ]

7 голосов
/ 28 января 2011

Рекомендуется использовать атрибут DeploymentItem для каждого элемента, который необходимо скопировать во время процесса MSTest.

Существует ряд шагов, от определения элементов до проверки правильности свойств каждого файла, бла-бла-бла.Итак, я написал хорошую инструкцию о том, как это сделать.

Прочитайте подробное описание того, как это сделать .

1 голос
/ 28 января 2011

Включите файл в свой проект и установите его свойства в Content и Copy If Newer.Он будет скопирован в каталог build / run как при отладке, так и при выпуске.

1 голос
/ 28 января 2011
0 голосов
/ 28 января 2011

Привет, у меня та же проблема, и я использовал ресурсы. Я создал TestFiles.resx в своем тестовом проекте, затем я добавил файлы. А в тестовых единицах я использовал, например, TestFiles.SomeFile и смог забыть о путях и т. Д.

...