2009-09-28 16 views
6

Pracuję nad witryną MVC z możliwością przesyłania obrazów i chcę napisać test, który prześle obraz.Testowanie strony ASP.NET MVC

Wykonałem obraz o nazwie TestImage.jpg i ustaw opcję Kopiuj na wyjście jako "Kopiuj, jeśli jest nowsze". W moim teście próbuję załadować że z następującego kodu:

System.Drawing.Image testImage = System.Drawing.Image.FromFile(@"TestImage.jpg"); 

Gdyby nie „Kopiuj do wyjścia” skopiować go do katalogu, w którym test jest uruchomiony? Jeśli nie, w jaki sposób mogę się dowiedzieć, gdzie został skopiowany? Najlepszy byłby pewien rodzaj ścieżki względnej projektu, więc mogę bez problemu przenieść to rozwiązanie bez tego zerwania.

Odpowiedz

16

W MSTest kopiuje ramowe wszystkie .dlls do folderu o nazwie tego testu. Niestety, kopiuje pliki .dll, .pdbs i .configs z folderu wyjściowego do folderu TestResults, więc twoje pliki nie są kopiowane.

Aby skopiować te pliki, trzeba będzie albo

  • dodać DeploymentItem attribute do testu (-ów) w kwestii
  • edycji plik .testrunconfig poprzez dodanie odpowiednich plików na karcie Deployment

Lepszą alternatywą jest osadzenie plików testowych w teście jako zasobu osadzonego, a następnie odczytanie ich bezpośrednio ze strumienia zasobów.

+0

dziękuję - "dodaj atrybut DeploymentItem do testowanego (-ych) testu" – Greg

Powiązane problemy