Наступні роботи в 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")
.