Skip to content

Commit

Permalink
Add documentation for @WithTestResource to getting started testing
Browse files Browse the repository at this point in the history
  • Loading branch information
HerrDerb committed Nov 27, 2024
1 parent 9361824 commit 30f019b
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion docs/src/main/asciidoc/getting-started-testing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1236,7 +1236,30 @@ public @interface WithRepeatableTestResource {
}
----


=== Usage of `@WithTestResources`

While test resources provided by `@QuarkusTestResource` are available either globally or restricted to the annotated test class (`restrictToAnnotatedClass`), the annotation `@WithTestResources` allows to additionally group tests by test resources for execution.
`@WithTestResources` has a `scope` property that takes a `TestResourceScope` enum value:

- `TestResourceScope.MATCHING_RESOURCES` (default) +
Quarkus will group tests with the same test resources and run them together. After a group has been executed, all test resources will be stopped, and the next group will be executed.
- `TestResourceScope.RESTRICTED_TO_CLASS` +
The test resource is available only for the annotated test class and will be stopped after the test class has been executed. This is equivalent to using @QuarkusTestResource with restrictToAnnotatedClass = true.
- `TestResourceScope.GLOBAL` +
The test resource is available globally.
This is equivalent to using `@QuarkusTestResource` with `restrictToAnnotatedClass = false`.

NOTE: `@QuarkusTestResource` is merely a convenient extension of `@WithTestResources` for the use of global test resources

BELOW TO EDIT: +
I don't know the behaviour when different scopes are mixed 🤷‍♂️Example:
```java
@WithTestResources(value = TestResourceA.class, scope = TestResourceScope.MATCHING_RESOURCES)
@WithTestResources(value = TestResourceB.class, scope = TestResourceScope.RESTRICTED_TO_CLASS)
@WithTestResources(value = TestResourceC.class, scope = TestResourceScope.GLOBAL)
class TestClass(){}
```
Also maybe add a use case example for why this annotation got introduced and what for the different scopes are useful, as we currently only use GLOBAL because of time reason.

== Hang Detection

Expand Down

0 comments on commit 30f019b

Please sign in to comment.