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

30 120

30 ответов:

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

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

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

enter image description here

пошел к

File -> Invalidate Caches/Restart...

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

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

на построить-->Перестроить Проект

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


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

  • на File-->Аннулировать Кэш / Перезапустить-->недействительным и Перезапустить

или:

  • в вашей структуре проекта Maven src / main / java правой кнопкой мыши на java каталог и выберите опцию пометить каталог как --> Источник Root

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

или:

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

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

    исключить выходные пути должен быть снят.

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

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

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

screenshot

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

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

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

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

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

  1. открыть структура проекта С shift -ctrl - alt -s ярлык

Screenshot of PModules Sources

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

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

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

Intellij module setting

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

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

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

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

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

Это, вероятно, потому, что папка не установлена в качестве источника теста, что можно сделать с помощью настроек модуля > модули.

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

dependencies {
    testImplementation 'junit:junit:4.12'
}

до

dependencies {
    testCompile 'junit:junit:4.12'
}

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

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

"запуск YourTest".

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

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

Я наконец-то создаю новый файл:

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

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

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

, например : / Users / random-guy/myWorkspace / src/DummyProject / out

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

apply plugin: 'kotlin-android'

и теперь он работает как ожидается.

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

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

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

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

то, что я сделал

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

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

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

  • перейти к файлу -- > структура проекта
  • перейти к модулю на левой стороне.
  • выберите пути, выберите переключатель (использовать модуль компиляции выходного пути)
  • обеспечить выходной путь и тестовый выходной путь, который находится внутри вашего проекта
  • снимите флажок исключить выходные пути.
  • "файл" -- > нажмите на признании Кэш и перезапуск

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

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

Так от ../ test / com/.. к ../ test / java / com/..

и это хорошо

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

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

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

временное решение, просто чтобы запустить тесты из командной строки:

./gradlew test

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