2015-06-21 6 views
2

Я пытаюсь проверить мой проект, и я имею следующую ошибку:JUnit - Android Studio - NoClassDefFoundError Exception

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122) 
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

Я попытался установить JUnit, как указано в here (без 6-7 шагов, которые я не понимаю) и here. Но все-таки такая же проблема.

При перекопах в исключении я обнаружил, что некоторые файлы используют библиотеку libcore, которая не может быть найдена (показывая cannot resolve symbol 'libcore'). То же самое касается библиотеки dalvik.system.VMStack (показывая cannot resolve symbol 'VMStack').

+0

Добавить junit jar файл в ваш путь к классу – Reimeus

+0

это уже есть @Reimeus –

ответ

4

У меня была такая же проблема, и это оказалось результатом моих настроек в Android Studio. По сути, Android Studio по умолчанию (или, возможно, что-то, что я установил в какой-то момент?) Запускал мои тесты в Java JUnit, а не в Android JUnit.

Чтобы проверить эту проблему, перейдите в верхнюю панель и найдите раскрывающееся меню «Выполнить», затем нажмите «Изменить конфигурации». Появится окно «Run/Debug Configurations».

В самой левой панели должны быть только разделы «Android Application», «Android Tests» и «Defaults». Если какие-либо файлы находятся в папке «JUnit», а НЕ в папке «Android Tests», ваши тесты, вероятно, не будут работать должным образом. Чтобы исправить это, выберите знак плюса в верхнем левом углу и выберите «Android Tests». Это действие позволяет вам создать новую конфигурацию запуска в качестве теста на Android. Введите важную информацию сверху для файла/файлов, для которых вы изменяете настройки запуска. Например, если «TestDB» первоначально находилось под «JUnit», создайте новую конфигурацию тестирования Android, выберите переключатель «Класс» и найдите соответствующий класс в новой строке текста. Вы также можете использовать «все в приложении» или «все в пакете» для создания настроек для всего тестового набора.

Очень важно выбрать все под «JUnit» и нажать кнопку «минус» вверху, чтобы удалить эти конфигурации запуска. Также важно: если вы когда-нибудь получите возможность выбирать конфигурации запуска (т. Е. Если вы щелкните правой кнопкой мыши на файле/пакете, нажмите «запустить», и появятся несколько параметров запуска), убедитесь, что вы всегда выбираете тот, у которого есть символ Android!

0

Похоже, вы забыли импортировать принтер результатов.

import junit.textui.ResultPrinter 
+0

У меня такая же ошибка. Как делать то, что вы предлагаете? –

0

Я смог решить эту проблему с помощью Android Studio. Я следовал инструкциям в http://tools.android.com/tech-docs/unit-testing-support. Убедитесь, что вы переименовываете/src // ... где исходный код тестирования находится в/src/test/..., используя опцию Rename refactor в AS.

И, наконец, включить фрагмент «Метод ... не издеваться». при возникновении ошибки.

Смежные вопросы