Тестирование from-Endpoints с CamelBlueprintTestSupport не выполняется с некоторыми компонентами

Я бы хотел протестировать Camel Routes, реализованный с помощью Blueprint-XML. При попытке протестировать маршрут с помощью простого "прямого" от конечной точки все работает нормально.

Но при изменении конечной точки "from" на компонент netty или jetty тест завершается неудачно со следующим исключением:

java.lang.RuntimeException: отказался от ожидания BlueprintContainer из пакета MyRouteTest

Маршрут, который у меня есть, выглядит так:

<route id="test">
 <from uri="jetty:http://test:8080/sample/test?matchOnUriPrefix=true" />
 <log id="_log1" loggingLevel="INFO" message="Test " />
</route>

Мой тестовый класс, расширяющий CamelBlueprintTestSupport, выглядит так:

// imports...

public class MyRouteTest extends CamelBlueprintTestSupport {


    @Override
    protected String getBlueprintDescriptor() {
        return "/OSGI-INF/blueprint/blueprint2.xml";
    }

    @Test
    public void testRoute() throws Exception {

        context.getRouteDefinition("test").adviceWith(context, new AdviceWithRouteBuilder() {
            @Override
            public void configure() throws Exception {
                replaceFromWith("direct:myMock");
            }
        });
        assert (true);

    }
}

Изменение маршрута к

<route id="test">
  <from
    uri="direct:halloTest" />
  <log id="_log1" loggingLevel="INFO" message="Test " />
</route>

путем замены части from с пристани на прямую работает нормально (например, тест проходит без ошибок и, конечно, заканчивается положительным результатом из-за проверки assert(true))

Кто-нибудь может мне помочь?

Результат mvn test:

ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 31.843 s <<< FAILURE! - myPackage.MyRouteTest
[ERROR] testRoute(myPackage.MyRouteTest)  Time elapsed: 31.544 s  <<< ERROR!
java.lang.RuntimeException: Gave up waiting for BlueprintContainer from bundle "MyRouteTest"

[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR]   MyRouteTest>CamelBlueprintTestSupport.setUp:241->CamelBlueprintTestSupport.createBundleContext:175 ▒ Runtime
[INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

1 ответ

Решение

Задача состоит в том, чтобы добавить в тестовый класс следующий код:

Изменение маршрута к

    @Override
    public boolean isUseAdviceWith() {
        return true;
    }
Другие вопросы по тегам