Intereting Posts
Переменные с подчеркиванием Android: запуск активности по ссылке в TextView Как загрузить Bitmap с помощью Picasso без использования ImageView? Android.app.Application нельзя использовать для android.app.Activity Разрешения на листинг приложения Android через adb Когда запускается SQLiteOpenHelper onCreate () / onUpgrade ()? Плагин Eclipse и модификация ADT для интеграции API в меню «Создать проект» Как управлять использованием памяти при вызове нескольких WebView в Android? Ошибка раздувания класса EditText при создании TextInputLayout на Android 4.4.2: Затухающий край прокрутки Android ScrollView Android View с View.GONE по-прежнему получает onTouch и onClick Как установить значение альфа / непрозрачности цвета на xml? Nexus 5 (Kitkat 4.4) не разрешит мой компьютер под управлением Windows 8 Как я могу использовать несколько значений для свойств макета Android XML? У меня возникли проблемы с тем, чтобы интерфейс Android Search работал в панели действий

TypeNotPresentException при запуске тестовой системы Android с robolectric и eclipse

У меня есть следующий пример тестового примера, настроенного в проекте тестирования Android, над которым я работаю.

package com.whatever.test; import static org.junit.Assert.fail; import org.junit.Test; import org.junit.runner.RunWith; import com.xtremelabs.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) public class SomeClassTest { @Test public void testFromJson() { fail("Not yet implemented"); } } 

Я установил конфигурацию запуска junit, она работает с junit4, и я пробовал как с Java 6 (mac os x default), так и с jdk 7 oracle.

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

  java.lang.TypeNotPresentException: Type com.xtremelabs.robolectric.RobolectricTestRunner not present at sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException(TypeNotPresentExceptionProxy.java:28) at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:57) at $Proxy4.value(Unknown Source) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) 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) Caused by: java.lang.ClassNotFoundException: com.xtremelabs.robolectric.RobolectricTestRunner at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:95) at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:107) at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31) at sun.reflect.annotation.AnnotationParser.parseSig(AnnotationParser.java:370) at sun.reflect.annotation.AnnotationParser.parseClassValue(AnnotationParser.java:351) at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:280) at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69) at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52) at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070) at java.lang.Class.getAnnotation(Class.java:3029) at org.junit.internal.builders.IgnoredBuilder.runnerForClass(IgnoredBuilder.java:13) ... 12 more 

Я использую последний android sdk (api level 17), входящий в пакет adt, и я использую robolectric 1.1 в качестве внешнего JAR.

Я открыт для альтернатив, если запуск тестов с помощью eclipse таким образом не самый лучший.

Изменить : мне предложили проверить, что Robolectric появляется перед Android в classpath, что я и сделал. И проблема сохраняется.

Изменить 2 : Я следил за предложениями в комментариях, но никто из них, похоже, не работал, ошибка сохраняется.

Solutions Collecting From Web of "TypeNotPresentException при запуске тестовой системы Android с robolectric и eclipse"