Использование JUnit с VSCode выдает ошибку: «java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter»JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Использование JUnit с VSCode выдает ошибку: «java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter»

Сообщение Anonymous »

Я пытаюсь использовать JUnit для тестирования с VSCode. Я проверил все расширения, импорт, протестировал версии 4 и 5, и всегда получаю ошибку java.lang.NoClassDefFoundError: org/junit/SomeClass
При тестировании с JUnit Jupyter, в частности, VSCode возвращает ошибку java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter в консоли отладки, в то время как результаты теста на вкладке показано: Тестовый запуск не записал никаких выходных данных. (вероятно, тесты не выполняются из-за ошибки).
Я пробовал выполнить все пути, которые предоставляет VSCode, запускаю все тесты, всего один, и всегда получаю одну и ту же ошибку.
Как видите, мой проект очень прост (только для тестирования) и имеет стандартная структура.
Изображение

Чтобы убедиться, что я не делаю ничего плохого, я создал класс для запуска тесты вручную (TestRunner.java), и когда я его запустил, все прошло отлично. Важно сказать, что я создал этот класс после получения ошибок, поэтому он не мешает.

Код: Выделить всё

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
public static void main() {
Result result = JUnitCore.runClasses(TesteCalculadora.class);
int count;
String msg;
long time = result.getRunTime();

System.out.println("\n\nRESULTADO DOS TESTES");
System.out.println("Tempo: " + time + " ms");

if (result.wasSuccessful()) {
count = result.getRunCount();
if (count == 1)
msg = count + " teste executado com sucesso";
else
msg = count + " testes executados com sucesso";

} else {
count = result.getFailureCount();
if (count == 1)
msg = count + " teste falhou";
else
msg = count + " testes falharam";
}

System.out.println(msg);

for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}

}
}
Это возвращает, как и ожидалось:

Код: Выделить всё

RESULTADO DOS TESTES
Tempo: 6 ms
2 testes executados com sucesso
Вот полный текст ошибки, которую возвращает VSCode:

Код: Выделить всё

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:383)
at java.base/java.lang.Class.forName(Class.java:376)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:372)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:367)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:311)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:226)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 9 more
Я не использую какие-либо менеджеры пакетов и зависимостей, такие как maven или gradle. Я пробовал устанавливать, удалять и восстанавливать заводские настройки для нескольких расширений, но, похоже, ничего не решило проблему.
Я попробовал несколько решений, которые нашел на этом форуме, но они также не увенчались успехом.
Я пробовал запускать тесты через интерфейс IDE. Обратите внимание, что VSCode прекрасно распознает тесты и правильно размещает все индикаторы и маркировку.
Изображение

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

Подробнее здесь: https://stackoverflow.com/questions/793 ... -org-junit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»