JUnit: NoClassDefFoundError: org/junit/runner/manipulation/Filter

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

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:320)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:310)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:305)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:283)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:207)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:191)

Я должен упомянуть, что junit-4.11.jar добавлен в путь сборки проекта. Есть идеи?

РЕДАКТИРОВАТЬ: Я (Габор Липтак) прочитал другой вопрос, который этот вопрос должен дублировать. Это не дубликат. Если у кого-то есть Gradle Buildship в качестве подключаемого модуля сборки в Eclipse, выдается именно эта ошибка, если вы по ошибке поместили свой тестовый класс в main/resorces вместо test/resources. Buildship, кажется, заботится о тесте или пути к классам компиляции, когда дело доходит до генерации конфигурации запуска. См. Следующие фрагменты моего файла .classpath ниже в качестве доказательства:

<classpathentry kind="src" output="bin/main" path="src/main/resources">
    <attributes>
        <attribute name="gradle_scope" value="main"/>
        <attribute name="gradle_used_by_scope" value="main,test"/>
    </attributes>
</classpathentry>

<classpathentry kind="src" output="bin/test" path="src/test/resources">
    <attributes>
        <attribute name="gradle_scope" value="test"/>
        <attribute name="gradle_used_by_scope" value="test"/>
    </attributes>
</classpathentry>

Ответ 1

Даже я столкнулся с той же проблемой, поэтому попробуйте выполнить следующие шаги -

  • Щелкните правой кнопкой мыши проект в Проводнике пакетов и выберите "Свойства".
  • Перейдите на вкладку "Библиотеки".
  • Нажмите кнопку Добавить библиотеку.
  • Выберите JUnit и нажмите "Далее".
  • Выберите JUnit 4 (это то, что я использую).
  • Нажмите "Готово".
  • Теперь щелкните правой кнопкой мыши файл, содержащий модульные тесты, и выберите "Свойства".
  • В настройках Run/Debug удалите все записи из Launch Configurations для этого файла. Нажмите ОК.

Надеюсь, вы сможете запустить тесты сейчас.