Intereting Posts
Стиль отображения контекстного меню Android edittext Поиск списка всех приложений для Android на рынке Как получить следующую дату при нажатии кнопки на Android? Как использовать Percentage для макета Android? Невозможно использовать jwplayer в приложении для Android MuPdf Android JNI-библиотека очень большая Функция автоматического выхода / времени ожидания приложения Android Войти с дополнительным разрешением с Facebook SDK 3 для Android Android push-уведомления PHP-код, не работающий на стороннем сервере, работающий на локальном сервере Android-приложение поддерживается 0 устройствами Невозможно настроить приложение приложения для биллинга Android в приложении Android sqlite читать все строки сразу Android AsyncTask возвращает несколько значений в doInBackground, которые будут использоваться для onPostExecute Android 2.1: Как я могу принести мягкую клавиатуру вручную? Сделать навигационную панель максимально активной анимации активности

Неверная настройка среды тестирования App Engine

Я пытаюсь выполнить модульное тестирование конечной точки приложения api. Я следую примеру от udacity . Они, похоже, используют LocalServiceTestHelper но я LocalServiceTestHelper понять, почему, поскольку он не используется позже в коде.

Вот мой основной файл градиента:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.google.appengine:gradle-appengine-plugin:1.9.28' } } repositories { jcenter(); } apply plugin: 'java' apply plugin: 'war' apply plugin: 'appengine' sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 dependencies { appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.28' compile 'com.google.appengine:appengine-endpoints:1.9.28' compile 'com.google.appengine:appengine-endpoints-deps:1.9.28' compile 'javax.servlet:servlet-api:2.5' compile 'com.googlecode.objectify:objectify:5.0.3' compile 'javax.jdo:jdo-api:3.0.1' compile 'junit:junit:4.12' compile 'com.google.appengine:appengine-testing:1.9.24' } appengine { downloadSdk = true appcfg { oauth2 = true } endpoints { getClientLibsOnBuild = true getDiscoveryDocsOnBuild = true } } 

Ниже приведен тестовый класс конечной точки (инструкции для импорта и другие тривиальные детали были опущены для краткости):

 private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig() .setDefaultHighRepJobPolicyUnappliedJobPercentage(100)); /** * Set up the local service tester before running tests and an instance of the magpieApi. * @throws Exception */ @Before public void setUp() throws Exception { //helper.setUp(); user = new User(EMAIL, "gmail.com" ,USER_ID); magpieApi = new MagpieEndpoint(); } /** * After running tests clear objectify and tear down the local test helper. * @throws Exception */ @After public void tearDown() throws Exception { ofy().clear(); helper.tearDown(); } 

Вот важная часть журнала ошибок:

 java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/dev/LocalDatastoreService$AutoIdAllocationPolicy at com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig.<init>(LocalDatastoreServiceTestConfig.java:24) at test.MagpieEndpointTest.<init>(MagpieEndpointTest.java:54) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.dev.LocalDatastoreService$AutoIdAllocationPolicy 

Я новичок в движке Google и никогда раньше не тестировал свой код, поэтому, пожалуйста, будьте добрыми (всего 16 лет). Нет синтаксических ошибок, поэтому мне любопытно, что вызывает проблему. Строка 54, очевидно, является источником проблемы, в которой я инициирую и объявляю helper переменную.

Спасибо.