Pracuję aktualnie w bardzo dziwnym projekcie, w którym ogólnie wykorzystywane są minimum (o tym minimum wiem) dwa mechanizmy testów jednostkowych: nUnit i MS Unit Testing Framework .
Akurat mi się nadarzyła taka okazja, że muszę pisać testy dla jednego jak i drugiego framework. I tak jak do póki korzystałem z nUnit problemów żadnych nie miałem – napisany test za pomocą R# uruchamiałem i czekałem na wynik. Tak przy wykonaniu bardzo podobnego testu (dosłownie kopia 1-1 tylko, że inny typ w parametrze generycznym) z wykorzystaniem atrybutów MS Tests przy pomocy R# test się nie uruchamiał, co gorsza VS miętosił, miętosił i jak już coś wymiętosił to kończył wykonywanie bez żadnej informacji dlaczego zakończył test, zaś okno sesji w R# wyglądało tak:
Widoki Output i Error Lists w VS nic nie pokazywały. Debugger zaś nie był wstanie zatrzymać się na żadnym brak point. Ogólnie wiedziałem, że coś jest źle, ale co? Z pomocą dopiero przyszły narzędzia testowe z Visual Studio, które też nie chciały uruchomić testu ale z tą różnicą, iż podały przyczynę:
Failed to queue test run ‘jgut@GUTEK-WORKPC 2009-11-18 12:43:26’: Test Run deployment issue: The location of the file or directory ‘d:_projects..AutoMapper.dll’ is not trusted.
Problemem jak się okazało było odczytanie przez środowisko MS Tests biblioteki AutoMapper.dll, która została ściągnięta z Internetu ze stron CodePlex. Nie wiem czy ta opcja istnieje w Windows XP, ale od przynajmniej Visty, Windows dla plików ściąganych z netu dodaje atrybut blokujący plik. Okazało się, iż nUnit nie robił sobie z jego przyczyny nic, zaś MS Tests jak najbardziej:
UWAGA: Upewnijcie się, że atrybut Read-only jest odznaczony, w przeciwnym wypadku na nic wasze zmiany (przynajmniej u mnie nie działały).
Odblokowanie biblioteki i następnie ponowna kompilacja rozwiązała problem, od tej pory test działa zarówno w R# jak i w narzędziach testowych VS.
Tez zauwayles ze testy sa wolniej wyonywane gdy uzywasz Gallio ?
Tak, MSTests dzialaja duzo wolniej ale one ogolnie dzialaja wolno ;)
Jeżeli chodzi o problem z blokowaniem plików pobranych z internetu to problem występuje również w Windows XP, ja spotkałem się z tym pobierając pliki CHM, które po pobraniu nie wyświetlały się poprawnie i trzeba je było odblokować.
Wczesniej nie uzywalem gallio i bylo o wiele szybciej… :| sux!
Comments are closed.