Тестовый класс JUNIT в Eclipse - java.lang.ClassNotFoundException - PullRequest
54 голосов
/ 19 апреля 2011

Я пытаюсь запустить свой тест junit (чтобы убедиться, что файл свойств загружается правильно), но я получаю ClassNotFoundException, хотя класс есть и все необходимые библиотеки тоже там.я получаю ошибку:

Class not found ConfigurationManagerTest                                                 java.lang.ClassNotFoundException: ConfigurationManagerTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

есть идеи, как это исправить?

Спасибо.

Ответы [ 24 ]

0 голосов
/ 29 октября 2015

Я получил эту ошибку, потому что недавно создал новое рабочее пространство и мои «Установленные JRE» не были настроены правильно. Убедитесь в Preferences -> Java -> Installed JREs корневая папка вашего JDK выбрана. По умолчанию для меня в новом рабочем пространстве по какой-то причине был JRE.

0 голосов
/ 08 мая 2015

Я тоже столкнулся с тем же исключением, ни одно из решений через Интернет не помогло мне. Мой проект содержит несколько модулей. Мой код Junit находится в веб-модуле. И это относится к коду клиентского модуля.

Наконец я попробовал: Щелкните правой кнопкой мыши по проекту (веб-модуль) -> путь сборки -> вкладка источника -> источник ссылки -> добавили расположение файлов src (в клиентском модуле)

Вот и все! Оно работало завораживающе Надеюсь, это поможет

0 голосов
/ 26 марта 2015

В представлении «Package Explorer» щелкните правой кнопкой мыши свой тестовый класс, затем «Build Path» >> «Include», все должно быть в порядке.

0 голосов
/ 31 июля 2014

У меня была похожая проблема с моим Eclipse Helios, который отлаживал Junits.Моя проблема была немного другой, так как я смог успешно запустить Junits, но когда я получал ClassNotFoundException при отладке тех же JUNIT.

Я перепробовал все виды различных решений, доступных на Stackoverflow.com и форумах в других местах, но ничегопохоже на работу.Поработав над этой проблемой в течение почти двух дней, я наконец нашел решение.

Если ни одно из решений не работает, просто удалите папку .metadata, созданную в вашей рабочей области.Это создаст дополнительные накладные расходы на импорт проектов и всех видов конфигурации, которые вы сделали, но это, несомненно, решит эту проблему.

Надеюсь, что это поможет.

0 голосов
/ 18 июня 2014

Если у вас есть проект Maven, попробуйте запустить:

mvn clean compile

, а затем в Eclipse очистите и постройте свой проект.

0 голосов
/ 02 мая 2014

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

Я обнаружил, что папка вывода для моих файлов $ {project_loc} src / test / java оказалась не такой, как я ожидал. Он был случайно установлен в $ {project_loc} target / classes. Я правильно установил его в свойствах проекта, Java Build Path, вкладке Source.

0 голосов
/ 09 ноября 2012

Вариант ответа Гая выше, с привлечением дополнительных строителей.Допустим, у вас настроен построитель Ant:

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
        <arguments>
            <dictionary>
                <key>LaunchConfigHandle</key>
                <value>&lt;project&gt;/.externalToolBuilders/myprojectantlaunch.launch</value>
            </dictionary>
        </arguments>
    </buildCommand>
</buildSpec>

Если сборка Ant и сборка Eclipse имеют разные выходные местоположения, Eclipse не сможет найти тестовый класс на пути к классам.В случае Ant-компоновщика также проверьте настроенные цели для чистых, автоматических, ручных и после-чистых сборок, чтобы убедиться, что цель, которая строит модульные тесты, называется.

0 голосов
/ 04 марта 2019
  • Предполагая, что вы пытались все разумно (удалить цель, обновить, очистить, восстановить, установить maven ...) и что вы поняли, что Eclipse не ведет себя разумно ...
  • Теперь : проверьте, нет ли ошибок, указывающих на то, что это может быть плагин (любой плагин), имеющий отношение к тестам.

  • В моем случае:

    • Я удалил EclEmma.
    • Он начал работать ...

Потратил несколько часов, пытаясь угадать это.

0 голосов
/ 28 апреля 2016

Я знаю, что на это уже давным-давно ответили, но ответ не помог мне, но я просто удалил все из источников в настройках buildpath и заново добавил их

0 голосов
/ 14 декабря 2012

Я добавляю этот ответ в качестве обзора моего решения из приведенного выше.

  1. Вы просто редактируете файл .project в основной папке проекта.Используйте правильный редактор XML, иначе вы получите fatal error от Eclipse, в котором вы не сможете открыть этот проект.
  2. Я сделал свой проект Java, добавив <nature>org.eclipse.jdt.core.javanature</nature> к <natures></natures>.
  3. Затем я добавил эти строки с правильными отступами <buildCommand><name>org.eclipse.jdt.core.javabuilder</name><arguments></arguments></buildCommand> к <buildSpec></buildSpec>.
  4. Run as JUnit ... Успех
...