Тесты Pax Exam иногда терпят неудачу

Я тестирую сервисы CXF REST в Karaf, используя Pax Exam. На моей машине тесты почти всегда проходят без сучка и задоринки. При запуске в Jenkins (под сборкой Maven) они обычно терпят неудачу. Неудачи кажутся случайными и непредсказуемыми. Ошибка, которую я получаю во время сбоя, связана с попыткой запустить команду Karaf. Команды выполняются следующим фрагментом:

    def byteArrayOutputStream = new ByteArrayOutputStream();
    def printStream = new PrintStream(byteArrayOutputStream);
    CommandProcessor commandProcessor = getOsgiService(CommandProcessor.class);
    CommandSession commandSession = commandProcessor.createSession(System.in, printStream, System.err);
    commandSession.put("APPLICATION", System.getProperty("karaf.name", "root"));
    commandSession.put("USER", "karaf");
    commandSession.execute(command)

Это команды, которые я пытаюсь выполнить в методе настройки тестов:

'features:addurl mvn:org.apache.cxf.karaf/apache-cxf/2.7.2/xml/features', 'features:install http', 'features:install cxf'

Это исключение:

org.apache.felix.gogo.runtime.CommandNotFoundException: Command not found: features:addurl

Видимо периодически Karaf запускается некорректно и не может обработать эти команды. Подобная ошибка возникает случайным образом в разных тестах на разных командах Karaf. На моей машине они чаще случаются, если машина находится под нагрузкой.

Что может заставить Карафа вести себя таким образом? Как предотвратить появление этих ошибок?

Спасибо,

Майкл


person Michael Smolyak    schedule 14.03.2013    source источник


Ответы (1)


Существует также pax-exam-karaf, у него также есть установщик функций, который можно использовать из конфигурации. Если вы хотите придерживаться «ручной» установки, вам следует заранее убедиться, что служба функций установлена. Например, пусть служба будет введена.

person Achim Nierbeck    schedule 15.03.2013
comment
У меня возникли проблемы с установщиком функций pax-exam-karaf, поэтому я использую pax-exam-karaf с ручной установкой функций. Вы говорите, что я мог бы дождаться службы функций и использовать службу для установки новых функций вместо выполнения команд с помощью службы CommandProcessor? - person jdgilday; 15.03.2013
comment
Да, этого тоже можно добиться :) - person Achim Nierbeck; 15.03.2013
comment
Какие проблемы у вас возникают с установщиком функций pax-exam-karaf, обычно он работает как шарм. Сам Караф тестирует с ним. - person Achim Nierbeck; 15.03.2013