Utwórz klasę testową w IntelliJ


138

Pracuję w ramach tradycyjnej struktury projektów Maven Java wewnątrz IntelliJ, np

main/java/com/x/y
test/java/com/x/y

Kiedy tworzę klasę o nazwie Foo w main / java / com / x / y przy użyciu IntelliJ, chciałbym automatycznie utworzyć plik o nazwie FooTest.java w test / java / com / x / y .

W Eclipse na pasku narzędzi znajduje się przycisk, który wykona większość pracy związanej z tworzeniem szkieletowej klasy testowej, czy ktoś wie o czymś podobnym w IntelliJ?

Dzięki,


Struktury katalogów dla testów i testowanych klas muszą pasować. Oto jak to zrobić w prosty sposób: stackoverflow.com/a/36057708/715269
Gangnus

Odpowiedzi:


256

Użyj opcji menu Nawiguj -> Testuj lub Ctrl+ Shift+ T( Shift+ + Tna Macu). Spowoduje to przejście do istniejącej klasy testowej lub zaoferuje wygenerowanie jej za pomocą małego kreatora.


1
W moim projekcie z jakiegoś powodu, mimo że klasa i klasa testowa znajdują się w tym samym pakiecie, kiedy zrobiłem Ctrl + Shift + T, pojawia się komunikat "Nie znaleziono klasy testowej". Ponadto, gdy klikam prawym przyciskiem myszy plik testowy, daje mi to tylko opcję kompilacji testu, ale nie uruchamia testu. Dowolny pomysł?
Szybowanie

1
Odpowiem od ręki, tak jak Andreas na twoje drugie pytanie . W jakiś sposób nie rozpoznaje, że twoje zajęcia są testami.
Jarl

Nadal dobrze działa z 12.1.4 w Windows. Sprawdź ustawienia, które mapa klawiszy wiąże Menu główne / Nawigacja / Test z Ctrl + Shift + T
Jarl

4
Nie działało dla mnie - dopóki nie włączyłem ponownie wtyczki JUnit, która została w jakiś sposób wyłączona.
Peter Westmacott

3
Należy zauważyć, że opcja Nawigacja> Test jest wyłączona, gdy klasa jest wybrana w oknie Projekt. Musi być wybrany w zakładce edytora.
Kevin Krumwiede

42

Alternatywnie możesz również ustawić kursor na nazwie klasy i nacisnąć alt+ enter( Pokaż działania intencji i szybkie poprawki ). Zasugeruje utworzenie testu .

Przynajmniej działa w wersji IDEA 12.


Dla mnie jest to najbardziej logiczna opcja. Zastąpiłem CTRL + SHIFT + T jako „przywróć poprzednią kartę”, więc kombinacja ALT + ENTER na nazwie klasy działa dobrze.
Scott Bennett-McLeish

Działa na Intellij Idea 2018.2.
Zon

9

* IntelliJ 13 * (jest opłacony) Odkryliśmy, że musisz mieć kursor w aktualnej klasie, zanim ctrl+ Shift+ Tzadziałało.

Co wydaje się nieco restrykcyjne, jeśli jest to jedyny sposób na wygenerowanie klasy testowej. Chociaż z perspektywy czasu zmusiłoby to programistów do stworzenia klasy testowej podczas pisania klasy funkcjonalnej.



4

Widzę, że niektórzy pytali, więc na OSX nadal możesz przejść do nawigacji -> test lub użyć cmd+ shift+T

Pamiętaj, że aby to zadziałało, musisz być skupiony w klasie


3
  1. Kliknij prawym przyciskiem myszy projekt, a następnie wybierz nowy-> katalog. Utwórz nowy katalog i nazwij go „test”.
  2. Kliknij prawym przyciskiem myszy folder „test”, a następnie wybierz opcję Oznacz katalog jako-> Testuj źródła główne
  3. Kliknij Nawiguj-> Testuj-> Utwórz nowy test
    Wybierz bibliotekę testową (JUnit4 lub dowolną)
    Określ nazwę klasy
    Wybierz członka

Otóż ​​to. Możemy modyfikować strukturę katalogów zgodnie z naszymi potrzebami. Powodzenia!


1
Dziękuję, otrzymywałem komunikat „Wygenerować testy w tym samym katalogu głównym co źródło?” próbując powyższego, tego właśnie potrzebowałem.
jgreve

2

Myślę, że zawsze możesz spróbować Ctrl+ Shift+, Aaby znaleźć akcję / polecenie, którego potrzebujesz.
Tutaj możesz spróbować nacisnąć Ctrl+ Shift+ Ai wprowadzić «test», aby znaleźć polecenie.


0

Użyj adnotacji @Test w jednej z metod testowych lub dodaj adnotację do klasy testowej za pomocą @RunWith (JMockit.class), jeśli używasz jmock. Intellij powinien zidentyfikować to jako klasę testową i włączyć nawigację. Upewnij się również, że wtyczka junit jest włączona.


0

Po ustawieniu kursora na deklaracji nazwy klasy wykonuję ALT + Return, a mój Intellij 14.1.4 oferuje mi wyskakujące okienko z opcją „Utwórz test”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.