Serge Huber created UNOMI-944:
---------------------------------

             Summary: Add integration test developer tooling for run archival, 
cross-run comparison, and live Karaf inspection
                 Key: UNOMI-944
                 URL: https://issues.apache.org/jira/browse/UNOMI-944
             Project: Apache Unomi
          Issue Type: Sub-task
          Components: unomi(-core)
    Affects Versions: unomi-3.1.0
            Reporter: Serge Huber
             Fix For: unomi-3.1.0


When integration tests fail, developers spend a lot of time on friction that 
has nothing to do with the actual bug.

*The problems today*
 * Every rebuild wipes {{itests/target/}} — taking server logs, test reports, 
and configuration with it. If you didn't look before rebuilding, the evidence 
is gone.
 * Deciding whether a failure is a real regression or just a flaky test means 
manually running the suite multiple times and keeping mental notes of which 
tests failed in which run. There is no structured way to compare runs.
 * The Karaf server is created with a random UUID directory name each run. 
Finding the log file or attaching a debugger means hunting for that path every 
time.
 * When a developer reports a failure, there is no record of which search 
engine, heap sizes, or build flags were used. Reproducing it requires guessing.

*What this ticket adds*

A set of opt-in shell scripts in {{itests/}} that cover the full lifecycle of 
an IT run:
 * *{{archive-it-run.sh}}* — captures a structured snapshot of test results, 
server logs, engine configuration, and build options after a run, before the 
next build wipes them. Also generates a filtered view of the server log that 
strips out intentional noise (errors that tests deliberately trigger) so only 
unexpected failures stand out.
 * *{{compare-it-runs.sh}}* — diffs two or more snapshots and classifies each 
test as consistently failing, consistently passing, or flaky.
 * *{{kt.sh}}* — a small utility that auto-locates the current Karaf test 
instance and provides {{{}log{}}}, {{{}tail{}}}, {{{}grep{}}}, {{{}start{}}}, 
{{{}stop{}}}, and {{debug}} commands without needing to find the UUID path 
manually.
 * *Build trace in {{build.sh}}* — records the exact Maven options, search 
engine, heap sizes, and flags for every IT run so failures can be reproduced 
precisely.
 * *{{itests/README.md}}* — updated to document all tooling in one place.

*Who is affected*

Developers running or debugging integration tests locally. This has no impact 
on production code, API behaviour, or CI pipelines. All tooling is opt-in and 
runs outside the normal build path.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to