Подтвердить что ты не робот

Класс не найден: пустой тестовый комплект в IntelliJ

Я только начинаю программу информатики в моем колледже, и у меня есть некоторые проблемы с IntelliJ. Когда я пытаюсь запустить модульные тесты, я получаю сообщение

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Я также вижу сообщение под названием "Тесты не найдены" в левой части экрана. Мой тестовый код здесь:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

И мой код проекта здесь:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Как я могу заставить мои тесты работать? Я использую самую последнюю версию IntelliJ IDEA CE.

4b9b3361

Ответ 1

Итак, моя проблема здесь заключалась в именах папок. Я назвал свою папку кода Classes 2016/2017, которой не понравился IntelliJ. Просто удалите косую черту (или другой нарушающий символ в пути), повторно импортируйте проект, и вам будет хорошо идти!

Ответ 2

Имело то же сообщение. Мне пришлось удалить конфигурацию Run/Debug.

В моем случае я раньше запускал unit test в качестве локального теста. После этого я перенес свой тест в пакет androidTest и попытался запустить его снова. Android Studio запомнила последнюю конфигурацию запуска, поэтому попыталась запустить ее снова как локальный unit test, который вызвал ту же ошибку.

После удаления конфигурации и повторного запуска теста она сгенерировала новую конфигурацию и работала.

введите описание изображения здесь

Ответ 3

Я пошел в

File -> Invalidate Caches/Restart...

а затем это сработало для меня.

Ответ 4

Я была такая же проблема. Я перестроил проект, и он мне помог.

Перейти к BuildRebuild Project

После этого, если вы используете инструмент Maven, я рекомендую использовать опцию Reimport All Maven Projects


Если это не поможет, попробуйте другие возможные решения:

  • Перейдите в ФайлНедействительные кеши/ПерезапускНеверный и перезапустите

или же:

  • В структуре вашего проекта Maven src/main/java щелкните правой кнопкой мыши на каталоге java и выберите опцию Пометить каталог как → Sources Root

    Аналогичным образом сделайте то же самое с тестовой директорией, так: src/test/java щелкните правой кнопкой мыши на директории java и выберите опцию Пометить директорию как → Тестовые источники Root

или же:

  • Перейдите в RunEdit Configurations и в разделе JUnit удалите тестовые конфигурации. Применять изменения. После этого попробуйте запустить ваши тесты. Новая конфигурация должна быть создана автоматически.

или же:

  • Перейдите в Файл → Структура проекта, выберите Модули, затем выберите нужный модуль и перейдите на вкладку Пути.
    Проверьте параметры:
    Радиокнопка Использовать выход модуля компиляции должен быть выбран.

    Выходной путь должен быть внутри вашего проекта. Также Test output path должен быть каталогом внутри вашего проекта. Например, это может выглядеть аналогично:
    Выходной путь: C:\path\to\your\module\yourModule \ target\classes
    Тестовый выходной путь: C:\path\to\your\module\yourModule \ target\test-classes

    Исключить выходные пути следует отменить выбор.

Ответ 5

Это также может произойти, если ваша тестовая папка была импортирована как отдельный модуль (маленький квадрат отображается на значке папки в представлении проекта).
Удалите модуль, выбрав тестовую папку в представлении проекта и нажмите DEL.
Затем запустите свой тест.
Если во всплывающем диалоговом окне появляется сообщение об ошибке, то ни один модуль не выбран, укажите корневой модуль из раскрывающегося списка.

Ответ 6

У меня была похожая проблема после запуска нового проекта IntelliJ. Я обнаружил, что "путь компиляции модуля" для моего модуля не был указан правильно. Когда я назначил путь в модуле "compile output path" для правильного расположения, проблема была решена. Выходной путь компиляции назначается в настройках проекта. В разделе Модули выберите соответствующий модуль и перейдите на вкладку Пути...

Вкладка Пути в настройках проекта | Диалог модулей

screenshot

... Я отправил вывод компилятора в папку с именем "output", которая присутствует в родительской папке Project.

Ответ 7

В моем случае все остальное было в нужном месте, но я работал над java-библиотекой с kotlin. Я просто забыл применить плагин:

apply plugin: 'kotlin-android'

И теперь это работает, как и ожидалось.

Ответ 8

В Android Studio 3.0 + иногда тесты пользовательского интерфейса каким-то образом интерпретируются как модульные тесты, и он не запрашивает выбор целевого развертывания. Вы можете перейти в "Редактировать конфигурацию" и пометить его как тест интеграции, и он начнет работать

Ответ 9

У меня был тот же вопрос, когда я импортировал некоторую jar из Maven и впоследствии вызывал ошибку empty-test-suite.

В моем случае это было потому, что maven сбросил файлы модулей. Который я разрешил, очистив мою конфигурацию по умолчанию:

  • Откройте Структура проекта с shift - ctrl - alt - s ярлык

Screenshot of PModules Sources

  1. Посмотрите на Модули > Источники и заполните пакет Sources или тестовый пакет.

Ответ 10

У меня была та же проблема, и восстановление/аннулирование кэша и т.д. Не работало. Похоже, это просто ошибка в Android Studio...

Временное решение - просто запустить свои модульные тесты из командной строки с помощью:

./gradlew test

См: https://developer.android.com/studio/test/command-line.html

Ответ 11

Интересно, что я сталкивался с этой проблемой много раз по разным причинам. Например, Invalidating кеш и перезапуск также помогли.

Последнее, что я исправил, исправив выходной путь в Файл → Структура проекта → Проект → Вывод компилятора проекта в: absolute_path_of_package/out

например: /пользователи /random-guy/myWorkspace/src/DummyProject/out

Ответ 12

Это также произойдет, если ваш модуль и/или проект-jdk настроены неправильно.

Ответ 13

Reimport проект или модуль могут решить проблему. Я сделал эту проблему, переименовав имя пакета при разработке. Но путь out и тестового вывода - это старый путь. Поэтому intellij не может найти класс из старого пути. Таким образом, самый простой способ - исправление пути выхода и тестового выходного пути.

Настройка модуля Intellij

Ответ 14

У меня была та же проблема (Android Studio 3.2 Canary 4), и я попробовал большинство предложений, описанных в других ответах, - но безуспешно. Обратите внимание, что это произошло после того, как я переместил файл из test в папку androidTest. Он все еще показывался в конфигурациях прогона как тест, а не как инструментальный тест.

Я, наконец, в конечном итоге с созданием нового файла:

  1. Создать новый инструментированный тестовый класс с другим именем.
  2. Скопируйте весь код из вашего класса.
  3. Запустить его.
  4. Удалить старый класс.
  5. Переименуйте новый класс в желаемое имя.

Ответ 15

Если у проекта есть проблема с компиляцией, то тесты могут не запускаться. Итак, сначала соберите проект как Build → Build Project. После успешной компиляции повторите тест.

Если ничего не получится, просто закройте окно проекта, удалите проект и повторно импортируйте как проект Gradle/Maven, который установит все для вас путем переопределения существующих файлов, созданных IntelliJ. Это приведет к удалению недействительного созданного кэша.

Вы также можете просто сделать кеш недействительным.

File -> Invalidate Caches/Restart

Ответ 16

Удаление .idea и повторный импорт проекта SBT решили эту проблему для меня.

Ответ 17

В моем случае IntelliJ не скомпилировал источники тестов по какой-то странной причине. Я просто изменил конфигурацию сборки и добавил цель maven clean test-compile в разделе Before launch

Ответ 18

У меня была такая же проблема. В моем случае у меня были некоторые тестовые классы в папке/папке вне основной папки. Но когда я проверил конфигурацию "Запуск", он всегда пытался искать классы внутри основной папки (а не мои пакеты за пределами основного). Поэтому, если это так, вам нужно либо переместить свои пакеты туда, на которые указывает настройка запуска. Или измените конфигурацию прогона, чтобы указать на ваши пакеты.

Ответ 19

Требуется ли для вашего теста Android-устройство (эмулятор или аппаратное обеспечение)?
Если это так, он называется "инструментальным тестом" и находится в "module-name/src/androidTest/java/".
Если нет, он называется "local unit test" и находится в "module-name/src/test/java"

https://developer.android.com/training/testing/start/index.html

У меня такая же ошибка, потому что я написал локальный unit test, но он был помещен в папку для инструментальных тестов. Перемещение локального unit test в папку "src/test/java" исправлено для меня.

Ответ 20

Получалась такая же ошибка. Мое устройство не было подключено к студии Android. Когда я подключился к студии. Оно работает. Это решает мою проблему.

Ответ 21

Вероятно, потому, что папка не установлена ​​в качестве источника теста, которая может быть выполнена через "Настройки модуля" > "Модули".

Ответ 22

В моем случае проблема была исправлена, перейдя в мой build.gradle и изменив

dependencies {
    testImplementation 'junit:junit:4.12'
}

to

dependencies {
    testCompile 'junit:junit:4.12'
}

Ответ 23

Я перепробовал все решения, но ни одно из них не помогло. В конце я запускаю тест в режиме отладки и.... он начал работать. Может быть, какой-то maven кеш был очищен. Сложно сказать. Оно работает. Попробуйте mvn test -X

Ответ 24

Просто щелкните правой кнопкой мыши по файлу в окнах проектов и выберите

"Запустите YourTest ".

Теперь все начинается нормально, возможно потому, что неправильная конфигурация запуска перестраивается заново.

Ответ 25

Это может произойти (по крайней мере, один раз для меня;) после установки новой версии IntelliJ, а плагины IntelliJ еще не обновлены.

Возможно, вам придется вручную Check for updates… из меню справки IntelliJ.

Ответ 26

В структуре вашего проекта Maven src/main/java щелкните правой кнопкой мыши на каталоге java и выберите опцию Пометить каталог как → Sources Root

Аналогичным образом сделайте то же самое с тестовой директорией, так: src/test/java щелкните правой кнопкой мыши на директории java и выберите опцию Пометить директорию как → Тестовые источники Root

Работал на меня :-)

Ответ 27

В моем случае возникла проблема с именем теста :).

Если имя было: dummyNameTest, тогда не получайте тесты там, где обнаружены, но в случае testDummyName все было хорошо

Ответ 28

В этом же выпуске используется IDEA 15.0.6, и ничего не помогло, кроме случаев, когда я переименовал пакет, в котором находился тестовый класс. После этого я переименовал его обратно в исходное имя и все еще работал, поэтому действие переименования могло бы очистить некоторый кеш.

Ответ 29

Для меня это было потому, что мой проект составлялся в каталог за пределами проекта. В путях пути вывода были \production\project_name и\test\project_name, которые помещали их в C:\production\project_name. Изменение их на полный путь проекта позволило моим тестам получить доступ к файлам классов.

Ответ 30

У меня была такая же проблема и в моей среде (MacOS). Я использовал IntelliJ 2016. У меня был проект библиотеки Java (gradle).

То, что я сделал, было

  • Открытый/экспортированный проект из более старой версии IntelliJ (например, IntelliJ14). Это произошло успешно, и я проверил его, выполнив проект и выполнив тестовый пример.
  • Затем я снова импортировал этот проект через IntelliJ 2016. После этого он работал нормально (строительный и тестовый сценарий).