2012-06-01 14 views
8

Mam bardzo frustrujący problem w Visual Studio. Używam Resharpera i piszę testy w Nunit.Problem z debugowaniem Visual Studio z Resharperem/Nunitem

Jeśli ustawię punkt przerwania, zostanie on trafiony, jednak kroki Wejść/Zakończ i Kontynuuj nie działają, a test nigdy się nie kończy. Nawet jeśli ustawię dwa punkty przerwania, kontynuowanie nie trafi drugiego. Jeśli debuguję test bez punktu przerwania, kończy się on dobrze.

Również często i przerywany, gdy próbuję debugowania test ustawiając punkt załamania, nie mogę oceniać zawartość zmiennych, ale zamiast zobaczyć tę wiadomość:

Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.

jestem używając Visual Studio 2010.

Daj mi znać, jeśli masz jakieś pomysły na to, na co patrzę ... Przeszukałem sieć, ale bez powodzenia.

Z przyjemnością udzielimy dodatkowych informacji, jeśli zajdzie taka potrzeba.

EDIT - Przykład sposobu

Test:

[Test] 
public void OneRowAddedToSourceData() { 
    //Factory just returns System.Data.DataTable with correct columns. 
    var sourceData = new DataTableContainerFactory().GetTargetTableContainer(DataTypeNames.EventSharedEnd); 

    //GetRow just returns a populated row. 
    var row = GetRow(sourceData, 123456, 123,60, 31); 

    sourceData.DataTable.Rows.Add(row); 
    Assert.AreEqual(1, sourceData.DataTable.Rows.Count); 
} 

Kiedy ustawić punkt przerwania na rachunku Twierdzę i spróbować ocenić tabeli danych otrzymuję ten problem.

AKTUALIZACJA 2! Zredukowszyłem ten problem do debugowania Resharper. Zmieniłem klasę testową na MSTest zamiast NUnit, ale nadal mam oba powyższe problemy podczas debugowania z Resharperem. Jednakże, gdy przeprowadziłem testy z wbudowanym testerem VS MSTest, WSZYSTKO problem został rozwiązany!

Teraz wolę używać NUnit i Resharper, więc byłbym bardzo szczęśliwy, gdyby ktoś mógł wskazać mi ustawienie, które pozwoli Resharperowi poprawnie debugować!

+0

Widziałem dokładnie to, o czym mówisz. To nie jest związane z Resharper/Nunit. Dzieje się tak, gdy próbujesz ocenić te zmienne.Zobaczę, kiedy spróbuję rozwinąć 'List <>' lub coś podobnego ('Dictionary <,>'). Jeśli możesz uniknąć oceny, która powoduje komunikat, możesz kontynuować debugowanie. Teraz, po prostu wiem, że kiedy dostaję ten komunikat o błędzie, przestaję debugować i restartuję, a następnie spróbuj nie oszacować zmiennej, która spowodowała problem. Chciałbym wiedzieć, jak temu zapobiec. –

+0

Dzięki Joel, jest to praca dla niektórych przypadków, jednak często próbuję dokładnie ocenić te zmienne. Bardzo frustrujące! Mam tylko nadzieję, że ktoś tu może pomóc! –

+0

Czy jest możliwe, że funkcja, którą oceniasz, ciągle się zapętla? Czy możesz podać prosty przykład tego rodzaju testów, w których to widzisz? –

Odpowiedz

5

Mam możliwe rozwiązanie, aczkolwiek z zastrzeżeniem. Czy niektóre wyszukiwania i przebiegły przez this blog item. Sugeruje wyłączenie Enable property evaluation and other implicit function calls z Tools->Options->Debugging->General. Wyłączyłem go i mogę teraz przejść do przedmiotów, które wcześniej spowodowały ten problem.

Najważniejsze jest to, że wszystkie właściwości, które były używane do automatycznego oceniania, nie są teraz wyświetlane. Zamiast tego podaje: Implicit function evaluation is turned off by user. Wszystko, co musisz zrobić, to nacisnąć przycisk Odśwież na nieruchomości i możesz zobaczyć wartość, ale nie zdecydowałem, czy jest to kompromis, który jestem gotów zrobić.

+0

Próbowałem tego, ale niestety po naciśnięciu przycisku Odśwież nadal otrzymuję błąd. –

+0

Domyślam się, że moje testowanie za pomocą prostych list jest powodem. Znacznie mniej do oceny po odświeżeniu. Szybkie pytanie: Czy kompilujesz dla .Net 4.0? Nie odtwarzam moich problemów w .Net 4.0 (głównie pracuję w .Net 3.5). Podejrzany, który ma coś z tym wspólnego (przynajmniej na moim końcu) –

+0

Tak, zaktualizowałem projekty z wersji 3.5, gdzie wystąpił błąd ... –

0

Znalazłem sposób, aby rozwiązać ten problem!

Zaznacz opcję DEBUG-> Opcje i Ustawienia-> OGÓLNE-> Włącz PROPERTY OCENA I inne ukryte wywołań funkcji i odznacz opcję wywołanie funkcji string-konwersji na obiektach w zmiennych okien

To działało Dla mnie!

Powiązane problemy