Eclipse не видит мой новый тест юнита

Я использую eclipse для запуска тестов в одном тестовом классе junit (4). Тесты в классе все работают отлично. Затем я добавляю дополнительный тест и запускаю класс с помощью теста, снова запускающегося в ecplise. Выполняются только старые тесты. Новый тест не наблюдается в eclipse. Там нет ошибки или чего-то еще, это похоже на то, что eclipse смотрит на старую версию теста.

Если я запускаю тесты с помощью maven, все работает нормально. Кроме того, после запуска тестов в maven, ecplipse может правильно увидеть и запустить новый тест.

Есть идеи, что происходит? Любые идеи о том, как получить тест-драйв ecplipse, чтобы увидеть мои новые тестовые примеры?

Ответ 1

У меня была такая же проблема. Я решил это, выполнив следующее:

  • Переход к проекту → Свойства → Путь сборки Java
    Для исходной папки src/test/java папка вывода была установлена ​​на "Выходная папка по умолчанию"
  • Установка этого в типичный каталог Maven target/test-classes в вашей структуре Maven

После этого Maven и Eclipse были в синхронизации (в отличие от Eclipse, с радостью выполнявшего более старую версию тестов, начиная с любой последней компиляции Maven).

Ответ 2

Возможно, вам просто нужно создать новую конфигурацию запуска. Eclipse "запоминает" последнюю используемую конфигурацию Run и просто повторяет ее, если не указано иное. Чтобы убедиться, что у вас есть новая настройка запуска, вы можете щелкнуть тестовый пример в проводнике пакетов и выбрать "Запустить как | Испытание Junit. В следующий раз, когда вы нажмете игру, это будет" запомненная" конфигурация запуска и т.д.

Ответ 3

Возможно, src/test не находится в пути сборки Java.

Решение по Кеплеру:

Проект → Путь сборки → Настройка пути сборки → Источник → Добавить папку

Затем установите флажок, соответствующий тесту в разделе src

Ответ 4

Возможно, это связано с использованием Maven для сборки (Maven обычно встраивается в папку "target" ), но Eclipse использует другую сборку для собственного процесса сборки. Самый простой способ - войти в целевую папку в проекте Eclipse (или Bundle при использовании OSGi) и удалить конфликтующие подпапки/файлы классов из этого каталога; для меня это моя "целевая" папка. Затем запустите Eclipse для восстановления, и все будет хорошо.

Технически, и, альтернативно, вы могли бы просто сбить всю сборку/целевую папку, если захотите, и позволить Eclipse перестроить все.

Ответ 5

В ответ на ответ, предоставленный Райаном Доу, я обнаружил, что папка вывода по умолчанию может быть установлена ​​только в одну папку для всех исходных папок на пути сборки. Поэтому, если я изменил папку вывода на целевые/тестовые классы, мой src/main/java также выводил классы там. Возможно, вы написали этот ответ для другой старой версии eclipse, но с выпуском Mars.2 у нас может быть только одна папка вывода по умолчанию для всех исходных папок.

Лучшим решением, которое я нашел до сих пор для этой проблемы, является просто включение целевых/тестовых классов в качестве папки классов, перейдя в Project → Properties → Java Build Path → Libraries → Add Class folder.

Ответ 6

Кажется, что ваш проект не перекомпилировался. Либо проверьте меню: Project/Build Automatically или сделайте это вручную, как прокомментировал Борис Павлоч.

Ответ 7

Это похоже на ту же проблему, что junit не использует новейший файл

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

Ответ 8

Добавьте "тест" перед вашими тестовыми классами, если уже не существует аннотации @Test, которая не всегда выбирается из среды Eclipse Junit Test.

Ответ 9

Вот как я исправил свою проблему...

  1. щелкните правой кнопкой мыши проект и перейдите в Выполнить как → Выполнить настройки...
  2. выберите JUnit → [имя проекта] в появившемся всплывающем окне. (эта конфигурация [имя-проекта] была создана для меня eclipse но если его там нет, вы можете щелкнуть правой кнопкой мыши JUnit → New и создать его)
  3. Перейти Classpath вкладка
  4. выделите Записи пользователя и нажмите кнопку Дополнительно... button
  5. .В появившемся всплывающем Расширенном меню выберите Добавить папки и нажмите ОК
  6. .в появившемся всплывающем Папке прокрутите к своему проекту, откройте target, выберите test-classes и нажмите OK
  7. .повторите шаги 4-6 для каталога [project-name]/target/classes и любого другого каталога, необходимого в вашем classpath (например, файлы свойств, используемые в ваших тестах и т.д.)

Примечание: предполагается, что папка вывода проекта по умолчанию для тестов - target/test-classes, если ее нет, измените ее соответствующим образом. Кроме того, убедитесь, что у вас выбрана правильная версия JUnit в разделе "Конфигурация запуска JUnit", а каталог src/test/java является исходной папкой для вашего проекта и т.д., Как упоминалось другими.