it-swarm.com.ru

Класс не найден: пустой тестовый набор в 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.

145
arnbobo

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

9
arnbobo

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

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

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

 enter image description here

99
com2ghz

Я пошел в 

File -> Invalidate Caches/Restart...

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

42
user674669

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

Перейти к Сборка -> Перестроить проект

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


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

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

или же:

  • В структуре вашего проекта Maven src/main/Java щелкните правой кнопкой мыши каталог Java и выберите параметр Отметить каталог как -> Корень источников

    Аналогичным образом сделайте то же самое с каталогом test, так: src/test/Java щелкните правой кнопкой мыши каталог Java и выберите параметр Отметить каталог как ->Тест Источники Root

или же:

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

или же:

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

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

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

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

14
Tobi

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

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

 screenshot

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

12
DStanton

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

apply plugin: 'kotlin-Android'

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

9
crgarridos

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

7
Tushar Nallan

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

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

  1. Открыть Структура проекта с shift-ctrl-alt-s сокращенный

Screenshot of PModules Sources

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

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

4
Maarten Dhondt

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

 Intellij module setting

4
Bejond

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

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

./gradlew test

Смотрите: https://developer.Android.com/studio/test/command-line.html

3
Marius

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

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

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

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

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

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

3
some random guy

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

2
jhegedus

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

1
mykey

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

1
radekpakula

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

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

1
Peter Lamberg

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

"Run YourTest ".

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

1
WebComer

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

1
noego

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

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

Я получил ту же ошибку, потому что я написал локальный модульный тест, но он был помещен в папку для инструментальных тестов. Перемещение локального модульного теста в папку «src/test/Java» исправило это для меня.

1
Patrick

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

1
vatbub

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

1
Aman Srii

В структуре вашего проекта Maven src/main/Java щелкните правой кнопкой мыши каталог Java и выберите опцию Пометить каталог как -> Корень источника

Аналогичным образом проделайте то же самое с тестовым каталогом, поэтому: src/test/Java щелкните правой кнопкой мыши на каталоге Java и выберите опцию Пометить каталог как -> Test Sources Root

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

1
krishna Murari

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

dependencies {
    testImplementation 'junit:junit:4.12'
}

в 

dependencies {
    testCompile 'junit:junit:4.12'
}
1
bremen_matt

Для меня проект был составлен вне проекта. Я просто изменяю путь . Для изменения пути (я использую Mac).

  • Перейти в Файл -> Структура проекта
  • Перейти к модулю на левой стороне.
  • Выберите Paths, выберите переключатель (используйте выходной путь компиляции модуля)
  • Укажите выходной путь и тестовый выходной путь, который находится внутри вашего проекта
  • Снимите флажок «Исключить выходные пути».
  • Перейдите в Файл -> Нажмите Invalidate Cache и перезапустите
0
Mukul Aggarwal

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

0
swapnil

решается путем ручного запуска задачи testClasses перед запуском модульного теста.

0
landerlyoung

Мое исправление для этой проблемы было с именами папок и путями.

В моем тесте по какой-то причине отсутствовала папка/Java /, а IntelliJ это не понравилось.

так от ../test/com /.. до ../test/Java/com/..

и это нормально

0
Evgeni Atanasov

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

0
seharri

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

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

0
Inweo

Пометьте свой пакет/каталог как Источники тестирования в вашей IntelliJ IDEA.

0
Luis Camargo

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

0
Alexander Klimetschek

То, что работало для меня, было правой кнопкой мыши на Project folder -> Maven -> Generate Sources and Update Folders

0
jsmiao

Прежде всего, нам нужно понять, почему это происходит, и сообщение об ошибке ясно:

Процесс завершен с кодом выхода 1 Класс не найден: "edu.macalester.comp124.hw0.AreaTest" Пустой набор тестов.

Так что это в основном происходит, когда после создания класса модульного теста мы запускаем методы (тесты) по отдельности, прежде чем запускать их на уровне класса. Это все

0
Carlos Daniel

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

Что я сделал

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