2010-06-16 2 views
5

я обнаружил, что DeploymentItemMSTest VS2010 - DeploymentItem копирование файлов в разных местах на разных машинах

[TestClass(), DeploymentItem(@"TestData\")] 

не копируя мои файлы тестовых данных в том же месте, когда тесты построены и работают на разных машинах.

The файлы тестовых данных копируются в "Bin \ Debug" каталога в тестовом проекте на моей машине, но на машине моего друга, они копируются в "TestResults \ name_machine YY-MM-DD HH_MM_SS \ Out" ,

Бункер \ каталог отладки на моей машине может быть получен с кодом:

string appDirectory = 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

и тот же код будет возвращать TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out на моих друзей ПК.

Это, однако, не проблема. Проблема в том, что файлы тестовых данных, которые я создал, имеют структуру папок, и эта структура папок поддерживается только на моем компьютере при копировании в bin \ debug, тогда как на машине моих друзей только файлы добавляются в каталог TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out. Это означает, что тесты пройдут на моей машине и потерпят неудачу!

Есть ли способ обеспечить, чтобы DeploymentItem всегда копировался в папку bin \ debug? Или способ гарантировать, что структура папок будет сохранена, когда DeploymentItem скопирует файлы в папку TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out?

ответ

2

После игры вокруг на некоторое время, это выглядит как самый лучший способ борьбы с ним, чтобы убедиться, что для каждого подкаталога, вы добавляете новый DeploymentItem, убедившись, что вы укажите «OutputDirectory», например, так:

[TestClass(), DeploymentItem("TestData\\", "TestData"), 
DeploymentItem(@"TestData\\SubDir\\", "TestData\\SubDir")] 

Это позволяет проводить тесты на вашей машине - надеюсь, это поможет кому-то!

+0

Это решило мою проблему относительного пути точно. У меня была та же проблема с файлами, хранящимися в подпапках и относительными путями, определенными в файле app.config. Thx –

+1

Атрибут 'DeploymentItem' предназначен только для методов. Как вы вообще пишете? –

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