java-affected-tests
Use before opening or updating an OpenMetadata PR that changes Java, a JSON schema, an index mapping, a SQL migration, seed data or a pom — PR CI no longer…
Skill by open-metadata
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/open-metadata-java-affected-tests
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, testing, devops, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/java-affected-tests
What's inside
- Skill name
java-affected-tests- Description
- Use before opening or updating an OpenMetadata PR that changes Java, a JSON schema, an index mapping, a SQL migration, seed data or a pom — PR CI no longer runs the Java integration tests (they run only in the merge queue) and the JavaUIIT/search-it suites run only nightly, so this selects the unit tests and integration tests the diff can break, runs them in the lane and engine CI uses, and records the results in the PR body. Also use when asked which Java tests to run for a change, or how to run one integration test.
- License
- Apache-2.0
- Instructions
- 157 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Java tests to run before a PR | Suite | PR checks | Merge queue | Nightly | You, before the PR | | --- | --- | --- | --- | --- | | Unit tests | full | full | — | impacted classes | | Integration tests (`openmetadata-integration-tests`) | skipped | full, every lane and engine | — | impacted classes | | search-it (`tests/search/*IT`) | — | — | openmetadata-nightly | impacted classes | | JavaUIIT (`*UIIT`), scale-it | — | — | openmetadata-nightly | reported, not run | The merge queue is the first CI run of the ITs. An IT failure there ejects the PR and re-tests every PR queued behind it. Search-indexing changes have no pre-merge CI at all, so your run is their only check before merge. Run what the planner selects, every time. ## 1. Preconditions - `git fetch origin main`, so the diff base is current. The planner diffs `origin/main...HEAD` plus uncommitted and untracked files. - Docker running, with no other Testcontainers stack up: `docker ps --filter label=org.testcontainers=true`. Another checkout's ITs plus yours rarely fit in Docker's memory. Wait for them; don't stop them. - JDK 21. No `mvn install` needed: every command builds the modules under test with `-am`. ## 2. Plan ```bash make java_affected # what runs, why, and the exact commands ``` | Planner output | What to do | | --- | --- | | `No Java tests are impacted` or `No impacted Java test runs locally` | Put the NOT NEEDED block in the PR (`make java_affected_run` writes it and names any nightly-only tests) | | `[unit] … FULL suite` | Expected for poms and widely used classes | | `[integration] FULL suite` | Run it locally, or in CI on your branch and record the run with `--ci-run` (section 3) | | `[integration] Class lane engine <- reason` | Run them all; the reason names the area, entity, reference or caller | | `Impacted, but not run locally` | List them in the PR with where they run (nightly, external cluster); don't run | | `Changed classes no unit test references` | Add a unit test (see `test-enforcement`), or say in the PR why none applies | | `Impact-map gaps` | Add the file's directory to the area that owns that code in `.github/java-tests/impact-map.json`, in this PR, then re-plan. Until then the full suite runs | | `Fix .github/java-tests/impact-map.json in this branch before you raise the PR` | Do what each line says: add the named glob to an area's `sources`, a pattern for the new IT to its `tests`, or remove a pattern your deletions emptied. `git push` and `gh pr create` stay blocked until it's clean (rule `java-impact-map.md`) | ### Ground rules for adding tests The plan is a floor: run everything it selects, and never remove a test from it. It reads the code, so it misses links that only show at runtime. Before you run, look at what the change does, and add tests when it: - changes what other entities see on delete, restore, rename or move (cascades, cleanup, orphans); - changes a field or response that search documents, lineage, change events or alerts read; - changes a permission, policy or validation check other endpoints also call; - changes what an endpoint accepts or returns: ITs reach it over HTTP, so no IT names your class. Grep the SDK and the IT tree for the endpoint's path or SDK method, and add the ITs that call it. When unsure, add the whole area. A few extra minutes locally cost less than an ejection from the merge queue. Add with a reason, on the run as well as the plan (nothing is saved between them); the details show both: ```bash make java_affected_run ARGS='--add-area lineage --add-it TableResourceIT --reason "moves the edge payload lineage reads" --update-pr' ``` `--add-it`, `--add-unit` and `--add-area` take comma-separated names; `--reason` is required with any of them. If the link is durable, change the map instead (an area pattern, or a directory in an area's `sources`), so the next change gets it without anyone remembering. ## 3. Run and record ```bash make java_affected_run # unit step first, then one step per lane and engine make java_affected_run ARGS="--update-pr" # once the PR exists: summary in its body, details in a comment ``` Measured on 2026-10-07: one unit class took 0.9 min. One small IT took 2.0 min, almost all of it the `-am` reactor build plus the MySQL + Elasticsearch Testcontainers bootstrap, which every IT step pays. Big classes add their own time; CI's parallel lane runs 334 classes in 46 min on four workers. - The run stops at the first failing step. `--keep-going` runs the rest. - A step passes only with exit 0, no failures, more than zero tests, and a report for every selected class. A green `BUILD SUCCESS` with zero tests is a failure. - Results: the summary `target/java-tests/local-pr-results.md` and the details `target/java-tests/local-pr-results-details.md`. Before the PR exists, paste the summary between the `local-java-test-results` markers under "Backend integration tests". Once it exists, `gh pr comment --body-file target/java-tests/local-pr-results-details.md` posts the details, and a later `--update-pr` run edits that comment. Never edit either by hand. - The summary stays short: the verdict, a row per step, and up to ten failed or missing names. The details' "Tests run locally" list names every class each step ran, with its counts. A module run in full is given as counts only: its class list alone can pass GitHub's 65,536-character limit for a comment. That list is the PR's record of what ran before review, so tests you ran by hand outside the planner go in the PR's Tests section too. A full-suite plan (`[integration] FULL suite`) is every merge-queue IT. Running it in CI is usually faster than locally: ```bash git push # CI runs the commit you push gh workflow run "Integration Tests - MySQL + Elasticsearch" --ref <branch> gh run watch <run-id> make java_affected_run ARGS="--ci-run <run-id> --update-pr" ``` `--ci-run` takes only a passed run of an integration-test workflow on `HEAD`, and covers only the lanes whose jobs ran and passed in it. Everything else still runs locally: unit steps, search-it, other engines, and lanes the workflow doesn't run (the Redis workflow has no rdf lane). Repeat `--ci-run` for a second engine's workflow. ## 4. When something fails 1. Re-run the failing class alone (section 5), then the failing method: `-Dit.test='Class#method'`. 2. Fails on your branch only → it's your change. Fix it. 3. Also fails on a clean `origin/main` worktree with the same command → pre-existing. Link or open an issue and say so in the PR. Don't call the run passed. 4. Passes on retry → a flake. Name the test in the PR, with how often it failed. ## 5. Running one IT by hand Copy the exact line from `make java_affected` when you can. The general shape: ```bash mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true \ -Pmysql-elasticsearch -DintegrationTests.lane=parallel -Dit.test=TableResourceIT \
From open-metadata/OpenMetadata, Apache-2.0.
More from open-metadata/OpenMetadata
- 0.862score
openmetadata-pr-review
open-metadata
Reviews OpenMetadata and Collate pull requests as a maintainer deciding whether to merge.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
tdd
open-metadata
Use when implementing new features or fixing bugs to enforce test-driven development.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
systematic-debugging
open-metadata
Use when debugging a failing test, build error, or runtime issue that isn't immediately obvious.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
playwright-validation
open-metadata
Use when validating UI changes in a branch require Playwright E2E testing.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
pr-checklist
open-metadata
Use when opening or finalizing a GitHub PR for OpenMetadata.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
planning
open-metadata
Use when starting a non-trivial feature, refactor, or multi-file change.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.857score
ui-pr-recording
open-metadata
Use during PR creation for a UI feature or feature task.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.857score
connector-audit
open-metadata
Deep reliability audit for OpenMetadata connectors — runs 7 investigation prompts (metadata, errors, auth, lineage, scale, synthesis, implementation) against…
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.857score
code-review
open-metadata
Use to review code changes with a two-stage process - first checking spec/requirements compliance, then code quality.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.857score
verification
open-metadata
Use before claiming any task is complete.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.857score
openmetadata-workflow
open-metadata
Meta-skill loaded at session start.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.855score
ui-core-components
open-metadata
Use when writing or editing React/TSX in `openmetadata-ui/src/main/resources/ui/src/` or `openmetadata-ui-core-components/`, before reaching for a raw `<div>`…
SkillAFreshness: A★ 15.6KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 15,567
- Forks
- 2,481
- Open issues
- 677
- Contributors
- 519
- Last commit (this folder)
- Oct 20, 2026 (7 days ago)
- Last release
- Oct 21, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/open-metadata/OpenMetadata
- Website
- open-metadata.org
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from open-metadata
- 0.862score
openmetadata-pr-review
open-metadata
Reviews OpenMetadata and Collate pull requests as a maintainer deciding whether to merge.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
playwright-validation
open-metadata
Use when validating UI changes in a branch require Playwright E2E testing.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
systematic-debugging
open-metadata
Use when debugging a failing test, build error, or runtime issue that isn't immediately obvious.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
tdd
open-metadata
Use when implementing new features or fixing bugs to enforce test-driven development.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
pr-checklist
open-metadata
Use when opening or finalizing a GitHub PR for OpenMetadata.
SkillAFreshness: A★ 15.6KClaude Code +9 - 0.860score
planning
open-metadata
Use when starting a non-trivial feature, refactor, or multi-file change.
SkillAFreshness: A★ 15.6KClaude Code +9
Cite this page
java-affected-tests skill. Agent Mart. https://agentmart.dev/skills/open-metadata-java-affected-tests (last updated 2026-10-24)