Тестирование Java-кода с помощью Groovy в Intellij: невозможно разрешить класс GroovyTestCase

Мне нужно написать короткий тест для некоторого Java-кода. Я использовал CTRL + SHIFT + T для генерации одного с IntelliJ и выбрал "Groovy JUnit" в качестве тестовой библиотеки, затем написал следующий тест:

package util
class FibonacciHeapTest extends GroovyTestCase {
    FibonacciHeap<Integer> heap

    void setUp() {
        super.setUp()
        heap = new FibonacciHeap<>()
    }

    void testAddInOrder() {
        testForItems 1..1000
    }


    private void testForItems(Range<Integer> items) {
        items.each {heap << it}
        assertEquals heap.size, items.to
        items.each {assertEquals heap.remove(), it}
    }
}

Однако, когда я нажимаю правой кнопкой мыши на тестовом примере в окне проекта, я не получаю параметр "Запустить все тесты", который я обычно делаю с тестами JUnit, и компилятор выдает следующую ошибку:

Information:2/4/15 8:15 PM - Compilation completed with 2 errors and 0 warnings in 2 sec
/home/patrick/IdeaProjects/hackerrank/src/test/java/util/FibonacciHeapTest.groovy
Error:(3, 1) Groovyc: unable to resolve class util.FibonacciHeap
Error:(9, 1) Groovyc: unable to resolve class GroovyTestCase

Попытка импортировать GroovyTestCase или FibonacciHeap вручную вызывает ту же ошибку. IntelliJ не добавляет никаких операторов импорта, когда я позволяю автозаполнению заканчивать имена для меня, как это обычно бывает с кодом Java.

Что я делаю неправильно?

Ответ 1

Это сработало для меня:

  • Откройте окно Gradle (с правой стороны в моем случае)
  • Нажмите кнопку обновления
  • Готово

screenshot

Ответ 2

У меня была похожая проблема с созданием тестовых классов в IntelliJ, и она была решена при создании нового каталога вне папки com.company (где у меня был класс, который я хотел протестировать).

  1. Создайте новый каталог для тестовых классов на том же уровне, что и ваша папка src.
  2. Щелкните правой кнопкой мыши новый каталог тестирования и выберите "Пометить каталог как" → "Корень ресурсов тестирования"
  3. Теперь создайте тестовый класс, который должен автоматически добавляться в ваш тестовый каталог.

enter image description here

Ответ 3

Build → Rebuild project в самой IDE (в отличие от maven, в моем случае) сделал это для меня.

enter image description here

Ответ 4

В моем случае, что я сделал, чтобы решить проблему, было довольно просто.

  • Закрыть IntelliJ
  • Откройте прикрепленную домашнюю страницу...
  • Удалите свой проект, нажав на x затем...
  • Нажмите Import Project, build.graddle файлу build.graddle вашего проекта и откройте.

enter image description here

Это было все, и все красные выделения исчезли.

Ответ 6

При создании теста в диалоге "Создать тест" вы можете выбрать библиотеку тестирования GroovyTestCase и нажать кнопку "Исправить":

enter image description here

Вот как открыть диалог создания теста: https://www.jetbrains.com/help/idea/2017.3/creating-tests.html

Ответ 7

Как указал @sman591 в комментарии, если вы получаете сообщение об ошибке:

groovyc: unable to resolve class groovy.util.GroovyTestCase

и у вас уже есть Groovy в качестве зависимости, тогда вы, вероятно, просто пропускаете зависимость от junit.

Ответ 8

В IntelliJ IDEA я повторно импортировал проект. Это сработало тогда. Я закрыл идею. Я удалил папку .idea в проекте. И я импортировал проект.

Затем мне нужно было настроить Groovy, посмотреть предыдущие ответы, пометить тестовый каталог как тестовый источник во всех модулях моего проекта.