2016-05-03 36 views
13

I niedawno zaktualizowany do TeamCity 9.1.6 uruchomić moje nowe testy jednostkowe na podstawie NUnit 3.2.1. Ale teraz mam problemy z systemem badań:NUnit 3.2.1 + TeamCity: Nie można załadować pliku lub zestawu 'nunit.framework'

Wybrałam wykonawcę NUnit3 w krokach budować, skonfigurowane odpowiednio:

Build step configuration

Przy budowie, pojawia się błąd: „Could nie ładuje pliku lub zestawu 'nunit.framework' lub jednej z jego zależności System nie może znaleźć określonego pliku. ".

Build log

Wszystko powinno być w porządku, ścieżki są w porządku, zespół jest w ścieżce testowego zespołu, wszystko jest zbudowany w konfiguracji AnyCPU. Istnieje również błąd stwierdzający, że wersja NUnit nie jest wersją wydania, co moim zdaniem jest bzdurą, jest wydaniem na stronie NUnit. I błąd nie wydaje się niczego uszkodzić (był obecny nawet wtedy, gdy miałem błąd przed błędem "nunit.framework", a kiedy to naprawiłem, kompilacja poszła dalej).

Wszelkie wskazówki doceniane!

AKTUALIZACJA: Uruchamianie testów przy użyciu wiersza poleceń i uruchamianie tego samego pliku nunit3-console.exe działa poprawnie. Sądzę więc, że jest to problem specyficzny dla biegacza NUnit. Mimo to, sugestie są mile widziane, jak to naprawić.

UPDATE 2: że próbował obniżenie zarówno opakowania i NUnit rozwiązanie Konsola używane przez TeamCity do 3.0.0 - nieruchomy, ten sam rezultat.

UPDATE 3: Jak już podejrzewał, wsparcie TeamCity potwierdził, że wiadomość o „wersji nunit nie jest obsługiwany” jest uszkodzony jeden, i nie powinno wpływać na cokolwiek.

+1

Jest to nadal problem z 10.x i jest to problem, ponieważ kompilacja nie powiedzie się. – Mukus

+0

To smutne. Nadal jednak skutecznie używam obejścia. Nie mam czasu na rekonfigurację i wypróbowanie rozwiązania bez obejścia. –

Odpowiedz

4

Po długiej dyskusji e-mailowej z pomocą techniczną w TeamCity znaleźliśmy rozwiązanie. Otrzymałem powiadomienie, że naprawili ten problem w nadchodzącym wydaniu TC10 (które miało miejsce gdzieś pod koniec czerwca 2016 r.) I na razie jest kilka obejść, które to naprawią.

Próbowałem numer dwa, a to działało dla mnie.

  1. testy wykonywane tylko w zagnieżdżonych katalogów względem katalogu kasy (na przykład można je skopiować wcześniej)

  2. Dodaj parametr konfiguracyjny build nunit_use_project_file do False:

    Edit Parameter popup

    Oznacza to, że poszedłem do mojego budynku testowego i uruchomiłem projekty, przeszedłem do sekcji Parametry i dodałem nowy parametr "nunit_use_project_file" jako False. Testy są teraz uruchamiane w ramach programu NUnit3 Build Step Runner.

+0

Otrzymałem ten sam błąd i rozwiązanie numer 2 działało dla mnie. Ale teraz po uaktualnieniu do teamcity 10.0.1, ten błąd wraca i nie możemy uruchomić żadnego z testów. Dowolny pomysł? – sam

+1

@sam wypróbuj odpowiedź w tym [link] (http://stackoverflow.com/a/3668371/354277)? – Mathew

+0

@sam Proponuję skontaktować się z obsługą TeamCity. Poprosili o dzień lub dwa, ale pomogli. –

24

Miałem ten sam problem z TeamCity 10.0.1 (build 42078) i NUnit 3.4.1. I okazało się, że to całkowicie moja wina. Zamieszczam to tutaj, ponieważ ktoś inny może wpaść w ten sam problem, a to może zaoszczędzić im trochę czasu.

Okazało się, że problem był w ustawieniu "Run tests from: " w mojej konfiguracji kompilacji.

enter image description here

miałem **\*.Test.dll. To było przypadkowe pobranie bibliotek dll dla katalogów \obj\**\ (gdzie nie ma pliku nunit.framework.dll). Po zmianie ustawienia na **\bin\%BuildConfiguration%\*.test.dll wszystko działa poprawnie.

Uwaga:% BuildConfiguration% jest parametrem, który określa preferowaną konfigurację budować na TC (jak Debug/Release/CIBuild itp)

0

Jeżeli nie masz jeszcze Nunit3 i Nunit.Console (Runner) w pliku packages.config powinieneś "zainstalować" go w swoim projekcie za pomocą Menedżera pakietów.

Następnie postępuj zgodnie ze wskazówkami w tej drugiej odpowiedzi na temat tworzenia kroku "automatycznego wykrywania" dla Nunit.ConsoleRunner. https://stackoverflow.com/a/38862220/3794873