-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Something preventing test instance for quarkiverse-cucumber tests #25151
Comments
This has proven a pretty annoying bug to track down. Pretty sparse information all around, and I have passing integration tests that both ensure restarting of the test instance (via different test resources), and creating tests dynamically in the same manner as the cucumber one |
When launching a |
Pretty sparse there too;
Looks like it's the log from the run previous to the one that fails to start |
Looking into the case where the cucumber tests are the only ones to run, it looks like there is a bug in the config provider used by the In the regular tests, the quarkus/core/runtime/src/main/java/io/quarkus/runtime/configuration/ConfigInstantiator.java Line 56 in 02d5ca6
|
I'm a bit stumped. After an amount of debugging, this method is often called, and normally comes back with the The actual getting of the Config object happens in |
Perhaps @radcortez may have some comments on that config resolution part. |
Then I guess that it may be a discovery ordering issue, meaning that in some cases the correct SPI is the first one selected, and in others, you get the wrong one.
I think it won't work because the Config returned by Do you know have a way to provide a reproducer with the exact steps? Thanks! |
I had a similar thought, but it was hard to debug to determine if this was true or not.
That's good to know. I linked my project on Github in OP, it's fairly simple as is but could make another, even simpler one. Let me know if you want me to do so @radcortez |
Thanks. I'll have a look. |
Thanks! Do let me know if you need anything, or have any questions! |
@GregJohnStewart I'm having some issues reproducing the problem with the instrucitons you provided? Any chance you can write a smaller single module project from a quickstart that reproduces the issue? Thank you! |
@radcortez The quarkus project provided in OP is fairly straight forward, but I have prepared a slimmed down app with tests that fail in the same way (on the cucumber-inttest-repo branch): Just run |
@radcortez where you able to get a chance to look at this one? |
The issue is that the Cucumber Quarkus test class is annotated with both I believe that with the current state of the extension we don't have support for |
Describe the bug
This one is a little bit of a doozy, but it is my impression there might be a bug with how Integration test test instances are stood up and torn down.
I am attempting to enable the Cucumber Quarkiverse plugin to work with the
@QuarkusIntegrationTest
tests, as Cucumber lends itself to integration/ acceptance level testing. I have a client that is trying to use Cucumber and is having to bend over backwards to use the tool, and is currently forced to do a lot of workaround to accommodate.The cucumber extension simply adds tests in a dynamic fashion, letting cucumber handle the individual tests:
This works fine in normal test mode.
I am attempting to enable integration tests by simply extending this class:
Which follows the convention of extending a regular test to make it run as integration.
However, the test Quarkus service can't seem to be run for the cucumber tests, while other integeration tests are unaffected.
Expected behavior
The cucumber tests should run fine in integration mode, when setup to run so.
Actual behavior
With the following configuration:
I get the following error when the test instance is stood up for the cucumber tests:
When I run just the cucumber tests (commenting out all the other integration tests):
How to Reproduce?
The service I am testing this with is here:
https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/tree/main/software/drivers/open-qm-driver-server
Note you will need to run
./gradlew publishToMavenLocal
on https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/tree/main/software/libs/open-qm-driver first.Simply run
./gradlew quarkusIntTest
in the driver-server project.Output of
uname -a
orver
Linux gen-dev-box 5.13.0-40-generic #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Output of
java -version
openjdk version "11.0.14.1" 2022-02-08 OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
GraalVM version (if different from Java)
No response
Quarkus version or git rev
2.8.1.Final
Build tool (ie. output of
mvnw --version
orgradlew --version
)------------------------------------------------------------ Gradle 7.3.3 ------------------------------------------------------------ Build time: 2021-12-22 12:37:54 UTC Revision: 6f556c80f945dc54b50e0be633da6c62dbe8dc71 Kotlin: 1.5.31 Groovy: 3.0.9 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 11.0.14.1 (Ubuntu 11.0.14.1+1-Ubuntu-0ubuntu1.20.04) OS: Linux 5.13.0-40-generic amd64
Additional information
I am putting this issue out here (the main Quarkus repo) as the actual extension git doesn't have a ton of visibility, and based on my digging appears that the issue most likely lies on the Quarkus side rather than the extension's. Supporting this theory is the startup seems to fail before the
getTests
even run.The text was updated successfully, but these errors were encountered: