[
https://issues.apache.org/jira/browse/UNOMI-944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Serge Huber reassigned UNOMI-944:
---------------------------------
Assignee: Serge Huber
> 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
> Assignee: Serge Huber
> Priority: Major
> 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)