Как использовать AppStats с тестами JUnit? (Google App Engine)

Я реализую проект для Google App Engine.

На данный момент у меня есть следующие настройки:

  • У меня есть пара сервлетов, чтобы вернуть некоторые данные клиентскому приложению (например, клиенту Android/iOS)
  • Чтобы проверить этот сервлет, я создал тесты junit для доступа к этим сервлетам.
  • Внутри сервлетов есть некоторая логика, чтобы определить, выполняем ли мы тесты или действительно выполняем вызовы от клиента. Если мы запускаем тесты на локальном компьютере, мы инициализируем LocalServiceTestHelper для работы хранилища данных, memcache и т. Д.

Это все отлично работает.

Теперь приходит проблема. Когда я добавляю фильтр AppStats в свой файл web.xml, это также относится к сервлетам, когда они используются в тестах языковых стандартов. Но фильтр AppStats не работает. Я получаю следующую трассировку стека при запуске моих тестов:

java.lang.NullPointerException
    at com.google.appengine.tools.appstats.Recorder.checkNotNull(Recorder.java:378)
    at com.google.appengine.tools.appstats.Recorder.<init>(Recorder.java:210)
    at com.google.appengine.tools.appstats.Recorder.<init>(Recorder.java:200)
    at com.google.appengine.tools.appstats.AppstatsFilter.init(AppstatsFilter.java:183)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:222)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093)
    at com.google.gwt.junit.JUnitShell.getUnitTestShell(JUnitShell.java:707)
    at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:652)
    at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:441)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:296)
    at junit.framework.TestSuite.runTest(TestSuite.java:255)
    at junit.framework.TestSuite.run(TestSuite.java:250)
    at junit.framework.TestSuite.runTest(TestSuite.java:255)
    at junit.framework.TestSuite.run(TestSuite.java:250)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)

У кого-нибудь есть идеи, почему AppStats получает исключение NullPointerException?

Насколько я вижу, у меня есть два варианта:

  1. Получить фильтр AppStats для работы в моих текущих тестах Junit.
  2. Отключите фильтр AppStats для моих тестов junit локали, но оставьте его активным для обычных вызовов сервлетов.

Оба в порядке, но я предпочитаю использовать вариант 1.


Обновление 19 апреля 2013 г.:

0 ответов

Другие вопросы по тегам