2011-09-07 24 views
7

Używam wbudowanego programu TeamUity NUnit do uruchamiania testów przechowywanych w plikach .DLL.Wyjątek FileNotFoundException podczas uruchamiania testów NUnit z TeamCity

Moje pliki .DLL odwołują się do innych plików DLL, które znajdują się w tym samym folderze.

Po uruchomieniu otrzymuję wyjątek FileNotFoundException dla odnośnych bibliotek DLL.

Jak mogę to naprawić? Myślę, że być może biegacz TC NUnit używa innego katalogu jako głównego folderu wykonawczego aplikacji, a tym samym uniemożliwia ładowanie plików, które faktycznie znajdują się obok testowej biblioteki DLL, ale nie może tego jeszcze potwierdzić ...

Ktoś jeszcze napotkał to zachowanie?

Odpowiedz

9

OK problem jest rozwiązany i to rzeczywiście głupie i żenujące:

Mam ustawiony testy biegacz NUnit do wykonać te badania:

**/*.Tests.dll 

oznacza to, że będzie ona obejmować testy z /bin/Debug/ a także z innych folderów, takich jak obj/

W tych folderach nie ma oczywiście żadnych odniesień, co sprawia, że ​​te same testy są uruchamiane dwukrotnie, a niektóre z nich oczywiście zawiodą!

1

Ścieżki są związane z budową katalogu kas, a nie z żadnym katalogiem roboczym. Jeśli potrzebujesz innych ścieżek, użyj składni %reference%, aby odnieść się do właściwości TeamCity ze ścieżką do katalogu. Czy uruchamiasz go pod Windows? Czy korzystasz z TeamCity 6.5?

Jeśli to nie pomoże, karmić swobodnie kontaktować [email protected]

+0

Obecnie używam 6.5, Windows, tak. Wiem, że ścieżki są względne, to było tylko logiczne wytłumaczenie, którego używałem, aby spróbować zrozumieć, dlaczego to się nie udaje. Jeśli Dll A odwołuje się do Dll B (oba w tym samym katalogu), jaki powód może spowodować, że wbudowany program uruchamiający NUnit nie wykryje biblioteki Dll B? –

0

W moim przypadku brakujący plik DLL był biblioteką macierzystą i nie można go było załadować, ponieważ w agencie kreacji była zainstalowana niepoprawna wersja środowiska wykonawczego VC. Moim rozwiązaniem było dodanie bibliotek DLL środowiska wykonawczego (znajdujących się w "C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ VC \ redist \ x86 \ Microsoft.VC110.CRT") bezpośrednio do projektu (kompilacja akcji = Treść, kopiowanie do katalog wyjściowy = Kopiuj zawsze). Ułatwia to także instalację.

Mam nadzieję, że to pomoże.

Powiązane problemy