Uruchamianie NUnit przez testy Resharper 8 nie powiodło się podczas przechodzenia między projektami z powodu aplikacji AppDomain

Ostatnio zaktualizowałem do Resharper 8, i kiedy próbowałem uruchomić pakiet projektów. Testy te zawierają dwa zestawy testów integracyjnych, które wykorzystują IISExpress do uruchamiania Strony internetowej, składania żądań internetowych i sprawdzania odpowiedzi.

Uruchamianie ich w izolacji jest udane, a uruchamianie wszystkich testów wcześniej by się powiodło. Jednak po upate drugi zestaw testów do uruchomienia nie powiedzie.

Dochodzenie wykazało, że AppDomain.CurrentDomain.BaseDirectory zostaje jako pierwszy test, który zostanie uruchomiony zamiast zmieniam się. Ponieważ testy integracyjne składają się z dwóch projektów, powoduje to niepowodzenie drugiego projektu, ponieważ nie może on znaleźć żadnego z potrzebnych plików konfiguracyjnych.

Nie mogę znaleźć żadnej opcji wyłączenia tego odmiennego zachowania w Resharper 8, które wydaje się być zachowaniem /domain:Single flagi nunit. Czy ktoś zna rozwiązanie tego problemu? A czy to zamierzone zachowanie Resharper 8 czy bug?

Author: hawx, 2013-07-26

3 answers

Obejście:

Czy próbowałeś w Visual Studio przejść do ReSharper -> opcje -> Narzędzia - > testy jednostkowe

Zmień ustawienie "Uruchom do 1 zespołów równolegle" na wyższą liczbę. Próbowałem po jednym dla każdego projektu testowego. Max to chyba liczba rdzeni.

Counterintuitive wiem, ale to działało dla mnie i używam AppDomain.CurrentDomain.BaseDirectory w nieudanych testach

Przyczyna Błąd optymalizacji buforowania w ReSharper 8. Praca Katalog nie jest ustawiony poprawnie. Być może równoległe działanie tworzy osobny proces dla każdego testu, aby nie potknąć się o swoje ustawienia.

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

Aktualizacja: w Resharper 8.1 została dodana nowa opcja testów jednostkowych, aby dostosować się do tego scenariusza. Znajdź go w ReSharper - > opcje -> Narzędzia - > testy jednostkowe - > "Użyj oddzielnej AppDomain dla każdego zestawu z testy.

 55
Author: Daniel Dyson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-13 16:22:37

Widzimy ten sam problem. Myślę, że to robak. Zobacz: http://youtrack.jetbrains.com/issue/RSRP-380761

 9
Author: orad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-26 17:48:48

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

Nie zapomnij zaznaczyć nowej opcji ReSharper / Options / Tools / Unit Testowanie / "użyj oddzielnej AppDomain dla każdego zestawu z testem", aby uzyskać to działa.

Oznacza to, że w Ustawieniach testów jednostkowych pojawiła się nowa opcja.

 6
Author: Paul Suart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-11 23:59:12