parent
0efa4afd49
commit
1b1cf266eb
3 changed files with 63 additions and 1 deletions
50
testsuite/model/README.md
Normal file
50
testsuite/model/README.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
Model testsuite
|
||||
===============
|
||||
|
||||
Model testsuite runs tests on raw `KeycloakSessionFactory` which is
|
||||
initialized only with those providers that are explicitly enabled
|
||||
in a used profile via `keycloak.model.parameters` system property.
|
||||
|
||||
This allows writing tests and running those in different
|
||||
configurations quickly, e.g. once with legacy JPA storage,
|
||||
second time with purely new Hot Rod implementation.
|
||||
|
||||
The valid parameters are names of classes in `org.keycloak.testsuite.model.parameters`
|
||||
package, and it is possible to combine those by providing multiple class names
|
||||
separated by comma.
|
||||
|
||||
To simplify matters, common combinations of parameters are defined as maven profiles.
|
||||
|
||||
|
||||
Test coverage
|
||||
-------------
|
||||
|
||||
To see test coverage via jacoco, set `jacoco.skip` property to `false`, e.g.:
|
||||
|
||||
```
|
||||
mvn test -Pjpa -Dtest=ClientModelTest -Djacoco.skip=false
|
||||
```
|
||||
|
||||
Then you can generate the coverage report by using the following command:
|
||||
|
||||
```
|
||||
mvn org.jacoco:jacoco-maven-plugin:0.8.7:report \
|
||||
-Djacoco.skip=false -Djacoco.dataFile=target/jacoco.exec
|
||||
```
|
||||
|
||||
The test coverage report is then available from `target/site/jacoco/index.html` file.
|
||||
|
||||
Profiling
|
||||
---------
|
||||
|
||||
If you have [Async Profiler](https://github.com/jvm-profiling-tools/async-profiler/)
|
||||
installed, you can generate flame graphs of the test run for profiling purposes.
|
||||
To do so, you set `libasyncProfilerPath` system property to the location of the
|
||||
async profiler library:
|
||||
|
||||
```
|
||||
mvn test -Pjpa -Dtest=ClientModelTest \
|
||||
-DlibasyncProfilerPath=/usr/local/async-profiler/build/libasyncProfiler.so
|
||||
```
|
||||
|
||||
The results are available in the `target/profile.html` file.
|
|
@ -308,6 +308,18 @@
|
|||
</properties>
|
||||
</profile>
|
||||
|
||||
<profile>
|
||||
<id>.asyncProfiler</id>
|
||||
<activation>
|
||||
<property><name>libasyncProfilerPath</name></property>
|
||||
</activation>
|
||||
<properties>
|
||||
<asyncProfiler.event>cpu</asyncProfiler.event>
|
||||
<asyncProfiler.file>target/profile.html</asyncProfiler.file>
|
||||
<argLine>-agentpath:${libasyncProfilerPath}=start,event=${asyncProfiler.event},file=${asyncProfiler.file}</argLine>
|
||||
</properties>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -11,7 +11,7 @@ mvn -version
|
|||
|
||||
EXIT_CODE=0
|
||||
mvn clean
|
||||
for I in `perl -ne 'print "$1\n" if (m,<id>([^<]+)</id>,)' pom.xml`; do
|
||||
for I in `perl -ne 'print "$1\n" if (m,<id>([^.<]+)</id>,)' pom.xml`; do
|
||||
echo "========"
|
||||
echo "======== Start of Profile $I"
|
||||
echo "========"
|
||||
|
|
Loading…
Reference in a new issue