Создать тестовый класс в IntelliJ


138

Я работаю в традиционной структуре проекта Maven Java внутри IntelliJ, например

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

Когда я создаю класс с именем Foo в main / java / com / x / y с использованием IntelliJ, я хотел бы автоматически создать файл с именем FooTest.java, созданный в test / java / com / x / y .

В Eclipse на панели инструментов есть кнопка, которая будет выполнять большую часть работы, связанной с созданием тестового класса скелета. Кто-нибудь знает что-то подобное в IntelliJ?

Спасибо,


Структуры каталогов для тестов и тестируемых классов должны соответствовать. Вот как это сделать легко: stackoverflow.com/a/36057708/715269
Gangnus

Ответы:


256

Используйте пункт меню Navigate -> Test или Ctrl+ Shift+ T( Shift+ + Tна Mac). Это перейдет к существующему тестовому классу или предложит сгенерировать его для вас с помощью небольшого мастера.


1
В моем проекте по какой-то причине, хотя класс и тестовый класс находятся в одном пакете, когда я нажал Ctrl + Shift + T, он говорит: «Тестовый класс не найден». Кроме того, когда я щелкаю правой кнопкой мыши по тестовому файлу, он дает мне возможность компилировать тест, но не запускать тест. Любая идея?
Glide

1
От руки я отвечу так же, как и Андреас на ваш другой вопрос . Каким-то образом он не признает, что ваши классы являются тестами.
Ярл

По-прежнему хорошо работает с 12.1.4 в Windows. Проверьте в Настройках, что Keymap связывает Mainmenu / Navigate / Test с Ctrl + Shift + T
Jarl

4
У меня не работало - пока я не включил плагин JUnit, который каким-то образом был отключен.
Питер Уэстмакотт

3
Следует отметить, что Navigate> Test отключен, когда класс выбран в окне Project. Он должен быть выбран на вкладке редактора.
Кевин Крумвиде,

42

В качестве альтернативы вы также можете поместить курсор на имя класса и нажать alt+ enter( Показать намеренные действия и быстрые исправления ). Он предложит создать тест .

По крайней мере, работает в IDEA версии 12.


Для меня это самый логичный вариант. Я переопределил CTRL + SHIFT + T, чтобы «восстановить предыдущую вкладку», поэтому комбинация ALT + ENTER для имени класса работает хорошо.
Скотт Беннетт-Маклиш

Работает на Intellij Idea 2018.2.
Зон

9

* IntelliJ 13 * (его оплачено) Мы обнаружили, что вам нужно поместить курсор в фактический класс, прежде чем ctrl+ Shift+ Tсработает.

Что кажется немного ограничительным, если это единственный способ создать тестовый класс. Хотя в ретроспективе это заставит разработчиков создавать тестовый класс, когда они пишут функциональный класс.



4

Я вижу, что некоторые люди спрашивали, так что в OSX вы все равно можете перейти на навигацию-> test или использовать cmd+ shift+T

Помните, что вы должны быть сосредоточены в классе, чтобы это работало


3
  1. Щелкните правой кнопкой мыши на проекте, затем выберите new-> directory. Создайте новый каталог и назовите его «test».
  2. Щелкните правой кнопкой мыши на папке «test» и выберите «Mark Directory As-> Test Sources Root».
  3. Нажмите Navigate-> Test-> Create New Test
    Select. Библиотека тестирования (JUnit4 или любая).
    Укажите Имя класса
    Выберите элемент

Вот и все. Мы можем изменить структуру каталогов в соответствии с нашими потребностями. Удачи!


1
Спасибо, я получаю "Генерировать тесты в том же корне, что и источник?" пробуя вышеизложенное, это было как раз то, что мне было нужно.
jgreve

2

Я думаю, что вы всегда можете попробовать Ctrl+ Shift+, Aчтобы найти нужное действие / команду.
Здесь вы можете попробовать нажать Ctrl+ Shift+ Aи ввести «test», чтобы найти команду.


0

Используйте аннотацию @Test для одного из методов тестирования или аннотируйте свой тестовый класс с помощью @RunWith (JMockit.class), если используете jmock. Intellij должен идентифицировать это как тестовый класс и включить навигацию. Также убедитесь, что плагин junit включен.


0

С курсором на объявлении имени класса я делаю ALT + Return, и мой Intellij 14.1.4 предлагает мне всплывающее окно с опцией «Создать тест».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.