Mam trochę kodu Java, który testuję jednostkowo przy użyciu JUnit, działającego w środowisku Eclipse (Neon). Zdarza się, że testowany kod zawiera błąd, który powoduje, że wchodzi w nieskończoną pętlę. Oczywiście JUnit nie kończy się. Jak zabić uruchomienie testowe?Jak zabić test JUnit w Eclipse, który wszedł w pętlę infinte
Przycisk zatrzymania testu ("Zatrzymaj JUnit Test Run") nie działa dobrze: GUI wydaje się myśleć, że zatrzymało testowe uruchomienie, ale przyjrzeć się działaniu procesora (używając np. top
, na przykład), pokazuje, że wątek Java nadal działa. Mogę samemu zabić wątek, wysyłając mu sygnał zabicia. Ale wydaje się, że jest to niedogodność i jest niewygodne. Czy istnieje lepszy sposób, dostępny w samym Eclipse?
Przydatne, jeśli przewidujesz awarię określonego testu * może * spowodować nieskończoną pętlę. Nie jest to zbyt użyteczne, jeśli nie masz uzasadnionego podejrzenia, lub kolejna próba ponownego fakturowania wprowadza nieskończoną pętlę. – Raedwald
@Raedwald Cóż, chciałbym obrócić twoje rozumowanie i opisać * każdą * metodę testową za pomocą '@Test (timeout = 60000)' (lub jakiegoś innego arbitralnie wysokiego limitu czasu), nawet jeśli mam * nie * nie mam żadnego powodu oczekiwać nieskończonego pętla. –
Jeśli dodam, że * co * test jest zapachem kodu, myślę. – Raedwald