Я использую Google Appengine для Java (GAE/J). Наверху я использую структуру REST для Джерси.Google AppEngine + Local JUnit Tests + Jersey framework + Embedded Jetty
Теперь я хочу запустить локальные тесты JUnit. Тест
- устанавливает локальную среду GAE развития (http://code.google.com/appengine/docs/java/tools/localunittesting.html),
- запускает встроенный сервер Jetty,
- и затем запускает запросы на сервер через HTTP и проверяют ответы.
К сожалению, комманда Jersey/Jetty генерирует новые темы. GAE ожидает только один поток для запуска. В конце концов, я заканчиваю тем, что не располагаю ни одним хранилищем данных в ресурсах Джерси или несколькими, имеющими разные хранилища данных.
В качестве обходного пути я инициализирую локальный env GAE только один раз, ставя его в статическую переменную и внутри ресурса GAE. Я добавляю много проверок (эти потоки не имеют dev env? Повторно используйте статический). И эти проверки, конечно, должны выполняться только внутри тестов JUnit .. (что я спросил раньше: «Как узнать, работает ли код внутри теста JUnit или нет?» - мне не разрешено публиковать ссылку напрямую здесь: - |)
Также рассмотрите использование переменных среды, доступ к которым осуществляется через код, например, 'String runLevel = System.getenv (« RUN_LEVEL »);'. Этот * независимый от языка * механизм популярен для того, чтобы ваша программа имела разные параметры конфигурации в разных средах (dev, test, integration, CI, production и т. Д.), – gb96