Poniższe działa w VS2012 dla projektów testowych zawartych w wielu rozwiązaniach bez użycia pliku ustawień testowych:
1) Ułóż pliki i foldery, które chcesz wdrożyć, w folderze w katalogu projektu testowego.
2) We właściwościach projektu utwórz krok po kompilacji
xcopy /Y /S /i "$(ProjectDir)<Project_Folder_Name>\*" "$(TargetDir)<Deployment_Folder_Name>"
$(ProjectDir)i $(TargetDir)są to makra, które będą interpretowane przez VS i jako takie powinny być uwzględnione.
<Project_Folder_Name> to nazwa folderu utworzonego w kroku 1.
<Deployment_Folder_Name>to nazwa folderu, w którym zostaną wdrożone pliki testowe, i powinna zostać nazwana tak, aby była unikalna, gdy wiele projektów testowych jest wdrażanych w tym samym katalogu, np <Project_Name>_TestInputs.
Pliki testowe w udostępnionych lokalizacjach należy również skopiować do folderu wdrażania katalogu docelowego, aby ograniczyć interakcje testowe. Podaj ścieżkę źródłową względem $(ProjectDir)makra. Na przykład "$(ProjectDir)..\..\Common Files\C1219TDL-2008.xml".
3) Dodaj [DeploymentItem(source, destination)]właściwość do każdej metody testowej, która używa pliku wdrożenia (najlepsze rozwiązanie) lub do klasy testowej (łatwiejsza praktyka dla leniwych lub spieszących się, a najłatwiejszy sposób zaktualizowania projektu poprzednio używane ścieżki względne lub plik ustawień testowych ).
W metodzie testowej sourcejest ścieżką do pliku lub katalogu używanego w metodzie testowej względem katalogu docelowego utworzonego przez xcopyi destinationjest ścieżką do katalogu, w którym zostanie utworzony, względem katalogu wdrażania. Aby testy działały spójnie w katalogu docelowym lub w katalogu wdrożeniowym. Ścieżka docelowa powinna być taka sama jak ścieżka źródłowa bez odwołania do pliku. Przykład: [DeploymentItem("Example_TestInputs\C1219TDL-2008.xml","Example_TestInputs")]. DeploymentItemPowinny być zawarte w każdej metodzie, która wykorzystuje ten plik lub katalog.
W klasie sourcei destinationoba są nazwą folderu utworzonego w katalogu docelowym przez xcopy; spowoduje to skopiowanie całego folderu do katalogu wdrożeniowego po uruchomieniu dowolnego testu w klasie. Przykład:[DeploymentItem("Example_TestInputs","Example_TestInputs")]
4) W metodach testowych możesz teraz uzyskiwać dostęp do plików i katalogów z pewnością, że będą one w katalogu roboczym niezależnie od tego, gdzie Visual Studio zdecydowało się to umieścić tego dnia, np File.Exists(".\Example_TestInputs\C1219TDL-2008.xml").