Наступні роботи в VS2012 для тестових проектів, включених до декількох рішень без використання файлу тестових наборів:
1) Впорядкуйте файли та папки, які ви хочете розгорнути, у папку в каталозі тестових проектів.
2) У властивостях проекту створіть крок побудови після публікації
xcopy /Y /S /i "$(ProjectDir)<Project_Folder_Name>\*" "$(TargetDir)<Deployment_Folder_Name>"
$(ProjectDir)і $(TargetDir)це макроси, які будуть інтерпретовані VS і повинні бути включені як такі.
<Project_Folder_Name> - назва папки, створеної на кроці 1.
<Deployment_Folder_Name>- це назва папки, в якій будуть розгорнуті тестові файли, і вона повинна бути названа таким чином, щоб вона була унікальною, коли кілька тестових проектів розгорнуто в один і той же каталог, наприклад <Project_Name>_TestInputs.
Тестові файли в спільних місцях також повинні бути скопійовані в папку розгортання цільового каталогу для обмеження тестових взаємодій. Надайте вихідний шлях відносно $(ProjectDir)макросу. Наприклад"$(ProjectDir)..\..\Common Files\C1219TDL-2008.xml" .
3) Додати а [DeploymentItem(source, destination)] властивість або до кожного методу тестування, який використовує файл розгортання (найкраща практика), або до тестового класу (легша практика для ледачих чи поспішних, і найпростіший спосіб оновити проект раніше використовуваних відносних шляхів або файлу тестових налаштувань ).
У методі тестування source- це шлях до файлу або каталогу, що використовується у методі тестування відносно цільового каталогу, створеного файлом, xcopyі destinationце шлях до каталогу, в якому він буде створений відносно каталогу розгортання. Таким чином, тести працюють послідовно або в цільовому каталозі, або в каталозі розгортання. Шлях до місця призначення повинен бути таким же, як вихідний шлях без посилання на файл. Приклад: [DeploymentItem("Example_TestInputs\C1219TDL-2008.xml","Example_TestInputs")]. Це DeploymentItemмає бути включено до кожного методу, який використовує цей файл або каталог.
У класі, sourceі destinationобидва є назвою папки, створеної в цільовому каталозі xcopy; це скопіює всю папку в каталог розгортання при запуску будь-якого тесту в класі. Приклад:[DeploymentItem("Example_TestInputs","Example_TestInputs")]
4) У методах тестування тепер ви можете з упевненістю отримувати доступ до файлів і каталогів, вони будуть знаходитись у робочому каталозі незалежно від того, де в цей день Visual Studio вирішив поставити його File.Exists(".\Example_TestInputs\C1219TDL-2008.xml").