2010-06-16 13 views
5

I odkryli, że DeploymentItemMSTest VS2010 - DeploymentItem Kopiowanie plików do różnych miejscach na różnych maszynach

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

nie kopiuje moje pliki danych testowych w tej samej lokalizacji, gdy testy są budowane i uruchamiane na różnych maszynach.

plików danych testu są kopiowane do „bin \ debug” katalogu w projekcie badania na moim komputerze, ale na komputerze mojego przyjaciela są kopiowane do „tego testu \ name_machine YY-MM-DD HH_MM_SS \ Out” .

Pojemnik \ katalog debug na moim komputerze można uzyskać z kodem:

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

i ten sam kod zwróci TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out na moich znajomych PC.

To jednak nie jest tak naprawdę problem. Problem polega na tym, że utworzone przeze mnie pliki danych testowych mają strukturę folderów, a ta struktura folderów jest przechowywana tylko na moim komputerze po skopiowaniu do bin \ debug, podczas gdy na moim komputerze znajomych tylko pliki są dodawane do katalogu TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out. Oznacza to, że testy przejdą na moją maszynę i zawiedzie na jego!

Czy istnieje sposób, aby DeploymentItem zawsze kopiował do folderu bin \ debug? Lub sposób zapewnienia, że ​​struktura folderów zostanie zachowana, gdy DeploymentItem skopiuje pliki do folderu TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out?

Odpowiedz

2

Po odtworzeniu przez jakiś czas, wygląda na to najlepszy sposób radzenia sobie z nim jest, aby zapewnić, że dla każdego podkatalogu, należy dodać nową DeploymentItem upewniając się, że należy określić „OutputDirectory”, tak:

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

Pozwala to na uruchomienie testów na twoim komputerze - mam nadzieję, że to pomoże komuś!

+0

To rozwiązało dokładnie mój problem z względną ścieżką. Miałem ten sam problem z plikami przechowywanymi w podfolderach i ścieżkach względnych zdefiniowanych w pliku app.config. Thx –

+1

Atrybut 'DeploymentItem' dotyczy tylko metod. Jak to w ogóle piszesz? –

Powiązane problemy