Skip to content

Classloader issue running test with QuarkusMainLauncher #48640

@ebullient

Description

@ebullient

This is another issue w/ classloaders and tests, specifically when running QuarkusMain tests in VSCode (which still show up as if they are running in Eclipse):

%TSTTREE2,dev.ebullient.convert.Tools5eDataConvertTest,true,1,false,1,Tools5eDataConvertTest,,[engine:junit-jupiter]/[class:dev.ebullient.convert.Tools5eDataConvertTest]
%TSTTREE3,testLiveData_homebrew(dev.ebullient.convert.Tools5eDataConvertTest),false,1,false,2,testLiveData_homebrew(QuarkusMainLauncher),io.quarkus.test.junit.main.QuarkusMainLauncher,[engine:junit-jupiter]/[class:dev.ebullient.convert.Tools5eDataConvertTest]/[method:testLiveData_homebrew(io.quarkus.test.junit.main.QuarkusMainLauncher)]
%ERROR  2,dev.ebullient.convert.Tools5eDataConvertTest
%TRACES 
org.junit.jupiter.engine.execution.ConditionEvaluationException: Failed to evaluate condition [io.quarkus.test.junit.QuarkusMainTestExtension]: Could not execute test class because it was loaded with the wrong classloader by the Eclipse test runner. Try running test methods individually, or edit the run configuration and add `-uniqueId [engine:junit-jupiter]/[class:dev.ebullient.convert.Tools5eDataConvertTest]` in the program arguments. 
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.IllegalStateException: Could not execute test class because it was loaded with the wrong classloader by the Eclipse test runner. Try running test methods individually, or edit the run configuration and add `-uniqueId [engine:junit-jupiter]/[class:dev.ebullient.convert.Tools5eDataConvertTest]` in the program arguments. 
        at io.quarkus.test.junit.AbstractJvmQuarkusTestExtension.evaluateExecutionCondition(AbstractJvmQuarkusTestExtension.java:201)
        at io.quarkus.test.junit.QuarkusMainTestExtension.evaluateExecutionCondition(QuarkusMainTestExtension.java:400)
        ... 14 more
Caused by: java.util.NoSuchElementException: SRCFG00027: Could not find a mapping for io.quarkus.deployment.dev.testing.TestConfig
        at io.smallrye.config.SmallRyeConfig.getConfigMapping(SmallRyeConfig.java:647)
        at io.smallrye.config.SmallRyeConfig.getConfigMapping(SmallRyeConfig.java:637)
        at io.quarkus.test.junit.AbstractJvmQuarkusTestExtension.evaluateExecutionCondition(AbstractJvmQuarkusTestExtension.java:161)
        ... 15 more

attn: @holly-cummins

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ideIssues related to the integration between Quarkus and IDE tooling.kind/bugSomething isn't working

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions