Запуск одного тесту JUnit в Eclipse


85

Якщо у мене є набір тестів з декількома тестами, коли я намагаюся запустити один модульний тест, або з контекстного меню редактора коду, або з подання JUnit, схоже, наполягаю на тому, щоб завжди запускати весь набір, а не одиночний тест. Чи є спосіб вимкнути, щоб змінити цю поведінку, щоб я міг попросити запустити той і тільки той тест.


11
Було б непогано, якби ви вибрали найкращу відповідь, поставивши зелену позначку біля відповіді.
guerda

Відповіді:


96

У провіднику пакунків розгорніть клас. Він повинен показати вам усі методи. Клацніть правою кнопкою миші на одному методі, який потрібно запустити, а потім виберіть Запустити як -> JUnit у контекстному меню (щойно протестовано за допомогою Eclipse 3.4.1). Також вибір "Виконати" на одному записі у поданні результатів JUnit для повторного запуску тесту працює таким же чином.


3
На жаль, це працює лише для методів тестування, які безпосередньо реалізовані в цьому класі. Це не працює для успадкованих методів @Test.
Крістофер Барбер,

1
Зверніть увагу, що, схоже, вам потрібно натиснути на назву методу. Клацання всередині методу запустить весь клас. (Або, принаймні, так це поводиться у мене.)
emragins

Здається, це працює лише з цього конкретного "дослідника пакунків", що є більш ніж незвичним, коли справа доходить до швидкого пошуку методу, який ви перевіряєте паличкою. І навіть незважаючи на це, налагоджувач швів, щоб пропустити інші методи - що вимагає додаткового часу. Має бути кращий спосіб ...
Macilias

і він також крихкий ... тепер eclipse вирішив не пропускати інші тести, коли працює таким чином :(
Macilias

27

Найшвидший спосіб, про який я знаю:

  1. Натисніть Ctrl+ Shift+ (переміщує курсор до поточної декларації методу),
  2. натисніть Alt+ Shift+ x(або dдля налагодження), потім натисніть t(гаряча клавіша для "Запустити тест JUnit" ),
  3. перевірити результат тесту,
  4. натисніть Alt+, щоб повернутися до рядка коду, яким ви були раніше.

Якщо ви хочете запустити всі тести, ви можете пропустити кроки 1 та 4.


13

В Eclipse 3.5 ви можете обійти це, змінивши тест-драйвер на JUnit 3. Це буде працювати лише для тестів JUnit 3, а не для JUnit 4. Ви можете змінити тест-драйвер, виконавши такі дії:

  1. Клацніть правою кнопкою миші на одному з методів тестування в Провіднику контурів
  2. Виберіть Запустити як -> Запустити конфігурації
  3. На вкладці "Тест" виберіть "Запустити один тест"
  4. У спадному меню Test Runner виберіть "JUnit 3"

Це може працювати і в інших версіях.


Гарний дзвінок! Зміна "Test Runner" на "JUnit 3" у діалоговому вікні конфігурацій запуску спрацювало для мене в Eclipse 3.6.0 (Helios). Тепер я можу запустити один метод у тесті JUnit. FWIW, у мене ніколи не виникало проблем із запуском окремих тестових класів JUnit 3 або 4 .
Адам Монсен,

Прекрасно, це спрацювало і на мене. Відповідь вище цього не дав, хоча, схоже, має більше голосів.
dreza

12

Це можливо в Eclipse Indigo з JUnit 4.8.2. Клацніть правою кнопкою миші метод, який ви хочете одинично перевірити, на Outlineпанелі та виберітьRun As -> JUnit Test .

Ви навіть можете вибірково клацнути правою кнопкою миші назву методу тестування у редакторі джерела та вибрати Run As -> Junit Test.


1
здається, перевірив би цей конкретний тестовий випадок. Однак після цього він все ще продовжується з іншими тестами.
lwpro2

@ lwpro2 Ви повинні використовувати JUnit 4 (анотації) для тестування одного тесту. JUnit 3 (розширити TestCase) все одно буде виконувати всі відповідні тести.
AnthonyW

1
wulfgar.pro Я повідомляв @ lwpro2, що якщо ви виконуєте тест JUnit з бігуном JUnit 4 (тому що, наприклад, ви використовуєте JUnit 4.8.2), ТЕХНЯ все ж розширює TestCase, ви не зможете запустити жодного перевірити самостійно. Ви повинні або використовувати бігун JUnit 3, або перетворити свій тест на використання анотацій.
AnthonyW

дякую за коментарі. Однак я використовував Junit4 із SpringJunit4ClassRunner. У всякому разі, не велика справа. коментування анотації відбувається швидко.
lwpro2

ця відповідь найпростіша
Jackson Tale

9

Не використовуйте Strg+, F11а гарячу клавішу Alt+ Shift+ X-> T.
Тоді Eclipse виконає поточний відкритий файл як тест JUnit. Зелена кнопка відтворення буде запускати лише останню вибрану конфігурацію запуску.

Для мене це добре працює з Alt+ Shift+ X-> T.


Дякую. Але скажімо, ви працюєте над класом, який перевіряється модульним тестом. Під час модифікації класу, як запустити відповідний UnitTest, не перемикаючи вікно на файл UnitTest?
bibstha

@bibstha Ви можете використовувати Ctrl + 3, а потім набрати "rerun". Це дозволяє повторно виконати останній тест JUnit. У вікні-> Налаштування-> Загальне-> Клавіші ви можете призначити власний ярлик для цієї дії. На мій погляд, підійде Ctrl + Shift + F11.
guerda

9

Я додаю до інших, включивши високопродуктивний єдиний спосіб клавіатури, який дозволяє вам налагоджувати один модульний тест (метод).

Перемістіть курсор до назви методу, використовуючи будь-який з них

  • Ctrl+ Shift+ Upабо
  • Ctrl+ Shift+ Downабо
  • Ctrl+ oпотім введіть ім'я методу

Коли курсор буде вказано на назві методу (або прямо перед ним):

  • Alt+ Shift+ D-> T(Налагодження)
  • Alt+ Shift+ X-> T(Виконати)

Після запуску тесту ви можете повернутися туди, де знаходився курсор, виконавши:

Alt+Back

Ви майже отримуєте REPL-подібну поведінку:

Ctrl+ Shift+ Upі Alt+ Shift+ X-> Tі Alt+Back

Ви також можете швидко встановити точку зупинки:

Ctrl+ Shift+B


3

Клацніть правою кнопкою миші десь на імені методу тестування у файлі та виберіть "Виконати" -> "Змінити тест". Я роблю це постійно за допомогою Kepler та JUnit 4.


2

У мене була та ж проблема, що і в інших із використанням Eclipse 3.4.1 та JUnit 4 test runner - не вдалося запустити один тест. Але десь ще я знайшов пропозицію, яка вирішила проблему. Мій тестовий клас все ще продовжував junit.framework.TestCase. Коли я перестав розширювати TestCase, все працювало нормально, і я зміг запустити одиночні тести JUnit з тестовим бігуном JUnit 4. Звичайно, мені потрібно було в анотаціях JUnit 4 використовувати статичні імпорти для методів затвердження, але я це вже зробив - я просто не видалив спадщину TestCase.


1

Якщо у вас є багато тестів у декількох файлах, і ви хочете запустити лише тести в певному файлі, ви можете клацнути цей файл правою кнопкою миші та вибрати запуск як -> junit test. Тепер, якщо ви хочете запустити лише один тест, що міститься у файлі з багатьма тестами, я здогадуюсь (у мене тут не встановлено eclipse), що у вікні «Контур» будуть перелічені всі методи тестування файлу, і ви, мабуть, зможете клацніть правою кнопкою миші один метод тестування та виконайте його як тест JUNit.

Сподіваюся, це допоможе.


1

Запустити лише один метод тестування.
У (провідник пакетів або дослідник проектів) розгорніть клас. Він повинен показати вам усі методи. Клацніть правою кнопкою миші на одному з методів, який потрібно запустити, а потім виберіть Запустити як -> JUnit у контекстному меню.
введіть тут опис зображення


0

Для мене він також не працює в Eclipse 3.4.2, хоча він працював і в попередніх випусках (я спробував запустити єдиний метод з провідника пакунків та тест на єдиний junit з перегляду junit)


Запуск одного методу / тесту з Провідника пакетів добре працює для мене в Eclipse 3.4.2.
Volker Stolz

0

Я погоджуюся з тим, що 3.4.2 більше не працює так, як це було в попередніх версіях. Перш ніж ви могли клацнути правою кнопкою миші на одному тесті в групі тестів з подання JUnit і виконати саме цей тест. В останній версії він наполягає на тому, щоб завжди запускати всі з них. Звичайно, подання запускає тест, на який ви натиснули перший, а решту скидає у зведене звання "Некореновані тести". Якщо хтось це зрозуміє, я хотів би знати, як це обійти.


0

Читаючи деякі коментарі тут, здається, вам може бути цікаво запустити тести коду, який ви змінюєте, змінюючи його, не втрачаючи уваги до коду, над яким працюєте. Для цього є плагін eclipse. Дивись нескінченний .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.