Я только начинаю изучать информатику в своем колледже, и у меня возникли проблемы с 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.

Ответы (39)

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

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

Что сработало для меня, так это щелкнуть правой кнопкой мыши по папке Project -> Maven -> Generate Sources and Update Folders

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

dependencies {
    testImplementation 'junit:junit:4.12'
}
От

до

dependencies {
    testCompile 'junit:junit:4.12'
}

Я пошел на

File -> Invalidate Caches/Restart...

, а потом у меня сработало.

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

Отметьте ваш пакет / каталог как тестовые источники в вашей IntelliJ IDEA.

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

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

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

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

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

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

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

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

В моем случае IntelliJ не скомпилировал исходные коды тестов по странной причине. Я просто изменил конфигурацию сборки и добавил цель maven чистую тестовую компиляцию в раздел Перед запуском

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

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

Intellij module setting

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

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

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

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

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

.

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

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

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

В последний раз я исправил это, исправив свой выходной путь в File -> Project Structure -> Project -> Project Compiler Output на: absolute_path_of_package / out

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

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

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

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

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

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

./gradlew test

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

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

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

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

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

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

У меня работали: -)

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

apply plugin: 'kotlin-android'

And now it's working as expected now.

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

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

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

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

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

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

screenshot

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

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

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

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

enter image description here

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

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

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

Screenshot of PModules Sources

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

выполните следующие шаги в Intellij (со скриншотами для лучшего понимания):

  1. перейдите в Файлы -> Структура проекта

enter image description here

  1. перейдите к модулям и теперь выберите модуль, в котором присутствует ваш тестовый файл Junit, и установите переключатель «Использовать выходной путь компиляции модуля».

  2. Укажите путь к папке с соответствующими классами, как показано на прилагаемом снимке экрана.

enter image description here

  1. Подать заявку и хорошо. У меня это сработало!

Я не компилировал код.

Чтобы исправить проблему, я сделал следующее.

Перейдите в Maven -> Нажмите "Выполнить цель Maven"

enter image description here

Запустить команду

mvn test-compile 

и выберите проект из раскрывающегося списка.

Теперь запустите свой тест, он будет работать

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

Возможно, вам придется вручную выполнить Проверить обновления… из меню справки IntelliJ.

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

В итоге я создаю новый файл:

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

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

.

«Выполнить YourTest».

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

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

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

итак из ../test/com/ .. к ../test/java/com/..

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

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

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

Перейдите к Build -> Rebuild Project

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


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

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

или:

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

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

или:

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

или:

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

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

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

2022 WebDevInsider