2013-07-26 13 views
48

Niedawno zaktualizowałem program Resharper 8 i gdy próbowałem uruchomić zestaw projektów. Testy te zawierają dwa zestawy testów integracyjnych, które wykorzystują IISExpress do uruchomienia strony internetowej, tworzenia żądań internetowych i sprawdzania odpowiedzi.Uruchamianie testów NUnit za pomocą Resharpera 8 podczas przechodzenia między projektami z powodu AppDomain

Uruchamianie ich w izolacji przebiega pomyślnie, a uruchomienie wszystkich testów zakończyłoby się sukcesem. Jednak po okresie oczekiwania drugi zestaw testów do wykonania zakończyłby się niepowodzeniem.

Dochodzenie ujawniło, że AppDomain.CurrentDomain.BaseDirectory pozostaje jako pierwszy test do uruchomienia zamiast zmiany. Ponieważ testy integracji składają się z dwóch projektów, powoduje to awarię drugiego projektu, ponieważ nie może znaleźć żadnego z potrzebnych plików konfiguracyjnych.

Nie mogę znaleźć żadnej opcji wyłączenia tego odmiennego zachowania w programie Resharper 8, który wydaje się być zachowaniem flagi jednostki dziewiczej /domain:Single. Skoro nie przejdziemy do wersji Resharper 7, czy ktokolwiek zna rozwiązanie tego problemu? I czy jest zamierzonym zachowaniem Resharpera 8 czy błędu?

Odpowiedz

55

obejścia:

Czy próbowałeś w Visual Studio będzie ReSharper -> Opcje -> Narzędzia -> Unit Testing

Zmień ustawienie „Run do 1 zespołach równolegle "do większej liczby. Próbowałem jednego dla każdego projektu testowego. Max jest liczbą rdzeni, jak sądzę.

intuicją wiem, ale to działało na mnie i używam AppDomain.CurrentDomain.BaseDirectory w upadających testów

Przyczyna Podręczny optymalizacji błąd w ReSharper 8. katalog roboczy nie jest prawidłowo ustawiony. Możliwe, że równoległe uruchamianie tworzy osobny proces dla każdego testu, więc nie potykają się nawzajem o swoje ustawienia.

The Fix JetBrains twierdzą, że zostanie to poprawione w wersji 8.0.1

Update: Jest testowanie opcja nowa jednostka dodane Resharper 8.1 aby pomieścić ten scenariusz. . Znajdź go w ReSharper -> Opcje -> Narzędzia -> Unit Testing -> "stosowanie oddzielnych AppDomain dla każdego zespołu z testów

+1

+1 Ten sam problem tutaj. Twoja sugerowana zmiana ustawień działa również dla mnie. – Andomar

+0

Dzięki, to mi pomogło. Ten problem nie został naprawiony w wersji 8.0.1 BTW. Może być naprawiony w późniejszej wersji. –

+0

Zobacz odpowiedź @Paul Stuart poniżej, aby uzyskać bardziej szczegółowe ustawienia, aby wyeliminować ten błąd. (To obejście działa jednak). – stannius

6

ten został ustalony w Resharper 8.0.2: http://youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929

nie zapomnij zaznaczyć nową opcję ReSharper | Options | Narzędzia | Jednostka Testowanie |. „Użyj osobnego AppDomain dla każdego zespołu z testu”, aby uzyskać działa

To jest teraz nowa opcja w ustawieniach testowania jednostki.

+2

To naprawia problem dla mnie w Resharper 8.1 –

+1

Powielone i naprawione, ale MUSI sprawdzić nową opcję w ustawieniach ReSharper. – SpaceBison

Powiązane problemy