quarkiverse / quarkus-cucumber

Quarkus Cucumber extension
Apache License 2.0
14 stars 14 forks source link

Failure if used with quarkus-datadog-opentracing #107

Closed TunaYagci closed 1 year ago

TunaYagci commented 1 year ago

Hello, I'm using IntelliJ and I can't run Cucumber tests with quarkus-datadog-opentracing unless i add:

-Djava.util.logging.manager=org.jboss.logmanager.LogManager

as VM options on Run Configurations in my IDE. A very similar issue is here: https://github.com/quarkusio/quarkus/issues/9339

This is the exception I receive if I don't add the configuration:

╷
└─ JUnit Jupiter ✔
   └─ CucumberIT ✔
      └─ getTests() ✘ java.lang.RuntimeException: Failed to start quarkus

Failures (1):
  JUnit Jupiter:CucumberIT:getTests()
    MethodSource [className = 'xx.CucumberIT', methodName = 'getTests', methodParameterTypes = '']
    => java.lang.RuntimeException: java.lang.RuntimeException: Failed to start quarkus
       io.quarkus.test.junit.QuarkusTestExtension.throwBootFailureException(QuarkusTestExtension.java:632)
       io.quarkus.test.junit.QuarkusTestExtension.interceptTestClassConstructor(QuarkusTestExtension.java:703)
       org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
       org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
       org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:73)
       [...]
     Caused by: java.lang.RuntimeException: Failed to start quarkus
       io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
       io.quarkus.runtime.Application.start(Application.java:101)
       java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
       java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [...]
     Caused by: java.lang.ExceptionInInitializerError
       io.quarkiverse.opentracing.datadog.DatadogTracerInitializer_Bean.create(Unknown Source)
       io.quarkiverse.opentracing.datadog.DatadogTracerInitializer_Bean.create(Unknown Source)
       io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:111)
       io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:35)
       io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:32)
       [...]
     Caused by: java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager")
       org.jboss.logmanager.Logger.getLogger(Logger.java:57)
       io.quarkiverse.opentracing.datadog.DatadogTracerInitializer.<clinit>(DatadogTracerInitializer.java:19)
       [...]

Quarkiverse OpenTracing dependency:

    <dependency>
      <groupId>io.quarkiverse.opentracing.datadog</groupId>
      <artifactId>quarkus-datadog-opentracing</artifactId>
      <version>1.1.4</version>
    </dependency>
gsmet commented 1 year ago

Yes unfortunately when running tests from the IDE, you have to set the log manager yourself as we can’t install it early enough.