2011-03-09 17 views
5

Użyłem Pycharm do napisania serwera.Pycharm nie rozpoznaje punktów przerwania w plikach nietestowanych

Mam kilka unittests przy użyciu biblioteki "unittest" z Python.

Właśnie przeprowadzałem testy i wszystko było w porządku, mogłem ustawić punkty przerwania w dowolnym miejscu kodu. Wczoraj uruchomiłem serwer przez debugger. Stwierdziłem, że moje punkty przerwania nie działają. Wizualnie wciąż tam są, wyglądają/zachowują się pod każdym względem jak działający punkt przerwania, z tym wyjątkiem, że nie powodują przerwania wykonywania, są po prostu ignorowane (tak jakby były wyłączone).

Dzisiaj, gdy ponownie próbowałem uruchomić testy, obserwuję to samo zachowanie we wszystkich plikach , z wyjątkiem tych w mojej bibliotece testów.

Próbowałem eksperymentu, dodając nowy plik do kodu serwera z prostą funkcją w nim. Punkt przerwania w funkcji, wywołanie funkcji z testu, uruchomienie testu przez debugger, bez przerwy. Skopiowałem plik do mojego katalogu "testy", zresetowałem punkt przerwania w funkcji, zmieniono polecenie "importuj", aby wskazywało na nową lokalizację pliku testowego, przeprowadzono testy. Teraz zatrzymuje się w punkcie przerwania w pliku.

Próbowałem każdego podstawowego "testu zdrowienia", o którym mogę myśleć: opuścić PyCharm. Ponownie zainstaluj PyCharm. Usuń preferencje PyCharm. Restart. Nadal zachowuję się dokładnie tak samo.

Dla tego, co jest warte, "uruchamianie kursora" wykazuje ten sam problem: w dowolnym pliku testowym działa on tylko bez zatrzymywania.

Co jest naprawdę szalone, to wszystko działało wczoraj. Przynajmniej podczas pracy testowej działały co najmniej punkty przerwania.

Odpowiedz

2

Kinda sorta naprawił to sam.

W Run-> Edit Configurations, wybrał konfigurację do testowania.

W "Testach: Folder:" istniejące ustawienie to foo/bar/baz/my_project/tests.

Przy tym ustawieniu miałem problem: punkty przerw w pracy "testy", punkty przerw w pozostałej części "my_project" nie.

Zmieniłem go na foo/bar/baz/my_project. Teraz wszystko działa zgodnie z oczekiwaniami, punkty przerw w dowolnym miejscu działają dobrze.

Inne osoby w moim projekcie działają poprawnie z oryginalnym ustawieniem: wskazują tylko katalog "testów" i mogą ustawiać punkty przerwania w dowolnym miejscu.

Nie jestem pewien, dlaczego jestem wyjątkowy, a to mi się nie udaje, ale mam obejście i jestem zmęczony walką z nim, więc ... dobre czasy.

1

Hej Doug, trzy rzeczy, które mogą lub nie mogą być pomocne:

  1. miałem ten sam problem kilka razy z powrotem z wcześniejszymi wersjami 1.0 i 1.0.1 z zapisanych konfiguracji debugowania - - odtworzenie konfiguracji debugowania naprawiło błąd. Knock na drewno, ale nie miałem problemu w 1.1.1. Nie próbowałem kandydata na wersję 1.2.
  2. Kolega miał podobny problem, ale przypadkowo ustawił swoje punkty przerwania na zewnętrznej kopii pliku, a nie tego, co PyCharm wykonał.
  3. Wreszcie moje doświadczenia są takie, że ludzie JetBrains są całkiem dobrzy jeśli chodzi o reagowanie na problemy, jeśli jesteś ping their user forum i/lub submit a YouTrack bug.

Cheers, Rob