Obecnie ponownie używam testów JUnit 4 z innego projektu przeciwko mojemu kodowi. Dostaję je bezpośrednio z repozytorium innego projektu w ramach mojej zautomatyzowanej wersji Ant. To wspaniałe, ponieważ zapewnia zachowanie zielonego kodu w stosunku do najnowszej wersji testów.Wyklucz indywidualne metody testowe JUnit bez modyfikowania klasy Test?
Istnieje jednak podzbiór testów, w których nigdy nie spodziewam się przekazania mojego kodu. Ale jeśli zacznę dodawać adnotacje @Ignore do tych testów, będę musiał zachować własną oddzielną kopię implementacji testowej, której naprawdę nie chcę robić.
Czy istnieje sposób wykluczenia poszczególnych testów bez modyfikowania źródła testu? Oto co mam spojrzał na tak daleko:
O ile widzę, zadanie Ant JUnit tylko pozwala wykluczyć całych klas test, a nie poszczególne metody badań - więc to nie jest dobre dla mnie, muszę ziarnistość metody.
Zastanawiałem się nad połączeniem TestSuite, które używa refleksji, aby dynamicznie znaleźć i dodać wszystkie oryginalne testy, a następnie dodać kod, aby wyraźnie usunąć testy, których nie chcę uruchamiać. Ale porzuciłem ten pomysł, gdy zauważyłem, że TestSuite API nie zapewnia metody usuwania testów.
Potrafię tworzyć własne klasy testowe, które rozszerzają oryginalne klasy testowe, zastępują określone testy, których nie chcę uruchamiać, i dodam je do adnotacji przy pomocy @Ignore. Następnie uruchom JUnit na moich podklasach. Wadą jest to, że jeśli nowe klasy testowe zostaną dodane do oryginalnego projektu, nie będę ich automatycznie pobierał. Będę musiał monitorować nowe klasy testów, ponieważ są one dodawane do oryginalnego projektu. To moja najlepsza opcja, ale nie czuję się idealnie.
Jedyna inna opcja, o której mogę pomyśleć, to uruchomić złe testy i zignorować awarie. Jednak te testy trwają długo (i nieudane!), Więc wolałbym ich w ogóle nie uruchamiać. Ponadto nie widzę sposobu, aby powiadomić zadanie Ant, aby zignorowało niepowodzenia dotyczące określonych metod testowania (ponownie - widzę, jak można to zrobić dla poszczególnych klas testowych, ale nie metod).
Nie, niestety muszę wykluczyć konkretne metody testowania. Oznacza to, że chcę przeprowadzić testy w danej klasie testowej, ale nie w innych. – rewbs