Frappe Testing Unit
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when writing unit tests, integration tests, creating test fixtures, or running tests with bench run-tests.
A skill your agent uses when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2…
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .claude/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .claude/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .agents/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .agents/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .cursor/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .cursor/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SAP/open-ux-tools.git --path plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .gemini/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .gemini/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .github/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .github/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-opa5-test-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development .opencode/skills/sap-fiori-opa5-test-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-opa5-test-development" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development into .opencode/skills/sap-fiori-opa5-test-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-opa5-test-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sap-fiori-opa5-test-developmentA skill your agent uses when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2…
Sap Fiori Opa5 Test Development is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization. Use this skill when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2 (fioriElementsTestLibrary). Triggers on any request involving OPA5 journeys, page objects, JourneyRunner setup, test structure, mock data, or debugging test failures in a SAP Fiori Elements project generated by SAP Fiori tools. Use even when the user says "write integration tests" or "add an OPA journey" without specifying the…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/fiori-elements-v2-test-library.md`, `references/v2-instructions.md` and `references/v4-custom-selectors.md`).
It sits in Testing & QA, covering Integration testing and Failing and flaky tests. It works with SAP. The repository describes itself as: Enable community collaboration to jointly promote and facilitate best in class tooling capabilities. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ddeddbe. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
docs.oasis-open.orgschemas.microsoft.comui5.sap.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sap Fiori Opa5 Test Development loads about 3.6k tokens when it runs, and up to ~26k if it reads all its reference files. Until then it costs about 162 tokens; SKILL.md has 1,497 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from SAP/open-ux-tools at commit ddeddbe, republished under its Apache-2.0 licence (© SAP). 1,497 words, ~3,555 tokens.
.claude/skills/sap-fiori-opa5-test-development/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.A guide for writing, fixing, and extending OPA5 integration tests for SAP Fiori Elements applications.
Covers both OData V4 (sap.fe.test) and OData V2 (fioriElementsTestLibrary).
Not applicable to freestyle UI5 applications - for those, suggest the ui5-best-practices-opa5 skill from the UI5 Plugins for Coding Agents ui5.
This skill requires an existing SAP Fiori Elements application generated by SAP Fiori tools with a test folder present (e.g. at webapp/test). If it is missing, follow the version-specific guide after detecting the OData version.
When the user provides a project name or ID (e.g. fin.test.rap.lr3) instead of a file path:
manifest.json files under common project roots (e.g. webapp/manifest.json)."id" field in sap.app to the given name, or look for a folder whose name contains the given ID.webapp/manifest.json as the project root for all subsequent steps.Before writing any test code, determine whether the app is OData V4 or V2. The two test libraries are completely different and must never be mixed.
manifest.json| What you find | Version | Test library |
|---|---|---|
"sap.fe.templates" key inside sap.ui5.dependencies.libs | V4 | sap.fe.test |
"sap.ui.generic.app" as a root key | V2 | fioriElementsTestLibrary |
metadata.xmlIf manifest.json is inconclusive, check the <edmx:Edmx> root element in the service metadata file (typically at webapp/localService/mainService/metadata.xml, or wherever metadataPath points in ui5-mock.yaml):
| Attribute value | Version |
|---|---|
xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" or Version="4.0" | V4 |
xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" or Version="1.0" | V2 |
These attributes appear on line 1 or 2 of the file.
If neither signal is present, ask the user to confirm the OData version before proceeding.
Once the version is confirmed:
references/v4-instructions.mdreferences/v2-instructions.mdWhen the user asks to add an additional journey (not just a new opaTest inside an existing journey):
*Journey.js, *Journey.ts, *Journey.gen.js, or *Journey.gen.ts in the project. The folder containing those files is the integration test root. These files typically live in a folder named integration within the test directory, e.g. webapp/test/integration.Journey.js or Journey.ts)sap.ui.require array in OpaTests.qunit.jsAllJourneys.js or AllJourneys.json) - follow the existing patternThese apply regardless of OData version or test library.
Never invent method names. Only use methods that are confirmed to exist in the test library. If a method is not shown in the quick-reference patterns, do NOT guess or construct a name - look it up first:
references/v4-standard-patterns.md for common patterns. If the method is not there, check references/v4-custom-selectors.md for custom selector patterns. If still not found, read references/v4-sap-fe-test-api-guide.md and consult the official sap.fe.test API documentation it points to. A method that "sounds right" is not sufficient — it must be confirmed to exist.references/fiori-elements-v2-test-library.md which contains the full API reference for all V2 page objects.Invented methods fail silently with a "not a function" runtime error that is hard to diagnose.
Every opaTest must have at least one Then assertion. A test with only Given/When steps reports 0 assertions and fails silently.
// ❌ No Then = no assertions, test fails
opaTest("Click button", function(Given, When, Then) {
When.onThePage.iClickButton();
});
// ✅ Always end with at least one Then
opaTest("Click button", function(Given, When, Then) {
When.onThePage.iClickButton();
Then.onThePage.iSeeThisPage();
});OData property names are case-sensitive - always match the exact casing from metadata.xml. Wrong casing causes a timeout, not an error message.
OPA5 state carries over between opaTest blocks within a journey. Tests run sequentially and share the same browser session - do not assume the app is in a clean state at the start of each opaTest. Always navigate and assert explicitly rather than relying on state left by the previous test block.
The pages map key in JourneyRunner (V4) must exactly match the accessor name used in journeys. A mismatch causes a silent runtime error - the page object is simply undefined when the journey tries to call it. (V2 registers page objects globally via module loading and has no pages map.)
// ❌ Wrong - key is "onTheList" but journey calls "onTheListReport"
pages: { onTheList: ListReportPage }
// journey: When.onTheListReport.onTable()... → undefined
// ✅ Fixed - key matches accessor name exactly
pages: { onTheListReport: ListReportPage }Keep journeys focused - split at around 10 opaTest blocks. Large journey files are slow to debug and hard to maintain. One journey file per feature or user flow is a good rule of thumb. Do not add tests for standard Fiori Elements behavior already covered by the test library itself.
Teardown method name differs by version. Always call teardown on Given, never on a page object:
Given.iTearDownMyApp() (capital D - overridden in sap.fe.test.BaseArrangements)Given.iTeardownMyApp() (lowercase d - base Opa5 method)QUnit requires assertions to validate tests. Teardown is not an assertion - always assert something before tearing down.
❌ Incorrect - teardown with no prior assertion:
// V4
opaTest("Should clean up", function(Given, When, Then) {
Given.iTearDownMyApp();
});
// V2
opaTest("Should clean up", function(Given, When, Then) {
Given.iTeardownMyApp();
});❌ Incorrect - teardown chained on a page object instead of Given:
// V4
opaTest("Should assert state and clean up", function(Given, When, Then) {
Then.onTheListPage.iSeeThisPage()
.and.onTheListPage.iTearDownMyApp();
});✅ Correct:
// V4
opaTest("Should assert state and clean up", function(Given, When, Then) {
Then.onTheListPage.iSeeThisPage(); // assertion first
Given.iTearDownMyApp(); // teardown on Given, separate step
});
// V2
opaTest("Should assert state and clean up", function(Given, When, Then) {
Then.onTheGenericListReport.theResultListIsVisible(); // assertion first
Given.iTeardownMyApp(); // teardown on Given, separate step
});These apply to both V4 and V2 projects.
When @sap/ux-ui5-tooling or @sap-ux/preview-middleware is configured with a test block in ui5.yaml or ui5-mock.yaml, the HTML and JS entry point files are generated on the fly - no physical opaTests.qunit.html or OpaTests.qunit.js are needed on disk.
Example ui5-mock.yaml configuration:
server:
customMiddleware:
- name: fiori-tools-preview
configuration:
test:
- framework: OPA5
path: /test/opaTests.qunit.html # default, omit if unchanged
init: /test/opaTests.qunit.js # default, omit if unchanged
pattern: /test/**/*Journey{,.gen}.{js,ts} # default, omit if unchangedIf a physical file already exists at the configured path, the middleware serves that instead (with a warning). When working in a virtual-endpoint project, do not create opaTests.qunit.html or OpaTests.qunit.js manually - new journey files are picked up automatically as long as their filename matches the configured pattern.
Without the virtual endpoint, the full structure is present on disk:
webapp/test/integration/
├── opaTests.qunit.html <- test suite entry point (opened in browser)
├── OpaTests.qunit.js <- imports journeys and calls QUnit.start()
├── FirstJourney.js
└── pages/
└── ...Registering a new journey requires adding its module path to the sap.ui.require array in OpaTests.qunit.js.
Via npm script:
npm run int-testCheck package.json for the exact script name. This runs fiori run --config ./ui5-mock.yaml --open 'test/integration/opaTests.qunit.html'.
Manually (CAP-based apps):
npm start # or: cds watchThen open in a browser: http://localhost:<port>/<app-name>/webapp/test/integration/opaTests.qunit.html
These apply to both V4 and V2 projects.
@sap-ux/ui5-middleware-fe-mockserver (recommended)Runs in the UI5 tooling layer - no backend process needed - making it the recommended choice for OPA5 tests. Supports both V4 and V2 apps.
Set it up with:
npx --yes @sap-ux/create@latest add mockserver-configTwo data modes - choose based on what your tests assert:
| Mode | Config | Use when |
|---|---|---|
| Static mock data | generateMockData: false | Tests assert specific values (exact counts, field contents, IDs). JSON files in mockdataPath (default: ./webapp/localService/mainService/data/). Deterministic across runs. |
| Dynamic mock data | generateMockData: true | Tests only assert structure (a field is visible, a table has rows). No JSON files to maintain, but you cannot assert exact values. |
If a journey deletes a record (e.g., via
iExecuteDelete()), restart the server before re-running to restore the data.
sap.ui.core.util.MockServer (older V2 apps)Older V2 apps generated by earlier tooling may use the UI5 framework's built-in mock server instead. It is configured via localService/mockserver.js and runs in the browser rather than the tooling layer. See the UI5 docs: https://ui5.sap.com/#/topic/3a9728ec31f94ca18a7d543ce419d85d
For CAP-based projects, cds watch / npm start can serve as the data backend. Reserve this for dedicated integration or end-to-end suites that need to test CAP logic - prefer the mockserver for OPA5 tests.
These apply to both V4 and V2 projects.
When a test fails, enable pause-on-failure so the app stays live in the browser at the point of failure for direct inspection. Add this line to your test entry point before the runner or any Opa5.extendConfig call:
sap.ui.test.qunitPause.pauseRule = "assert,timeout";When the test pauses, inspect the live app in the browser to see what the UI actually shows vs. what the test expected. Remove this line once all journeys pass.
For UI5 version 1.147 and above, the TestRecorder tool (sap.ui.testrecorder library) can be added to the app temporarily to inspect the live control tree and generate reliable OPA5 snippets for non-trivial selectors. Remove the library again once done.
Flaky tests on CI - the default OPA5 timeout (15s) is often too low for CI environments. Increase it to 60 in your runner config (opaConfig.timeout for V4, Opa5.extendConfig({ timeout: 60 }) for V2).
| File | When to read |
|---|---|
references/v4-instructions.md | V4 app: test structure, JourneyRunner, page objects, anti-patterns, debugging, patterns and fixes by UI area |
references/v4-journeyrunner.md | V4: full JourneyRunner config reference, tile name lookup, portable journey pattern |
references/v4-sap-fe-test-api-guide.md | V4: how to navigate the sap.fe.test API docs, naming conventions, identifier patterns |
references/v4-standard-patterns.md | V4: quick-reference example catalogue by UI area (App Startup, FilterBar, Table, Header, Form, Footer, Dialog, Section, Value Help, Chart, Shell) |
references/v4-custom-selectors.md | V4: custom selectors (last resort), OpaBuilder, CustomFilterField IDs, ComboBox, suffix pitfalls |
references/v2-instructions.md | V2 app: setup, page objects, V2 gotchas |
references/fiori-elements-v2-test-library.md | V2: full API reference for List Report, Object Page, ALP, and FCL page objects — method signatures, common pitfalls, complete example |
© SAP, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development of SAP/open-ux-tools.
Open the folder on GitHubat commit ddeddbe
Sap Fiori Opa5 Test Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sap Fiori Opa5 Test Development this skillSAP/open-ux-tools | 158 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Frappe Testing UnitImpertio-Studio/Frappe_Claude_Skill_Package | 189 | — | ~3k | Automated safety check: Pass | MIT | |
| Designing TestsCloudAI-X/claude-workflow-v2 | 1.4k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| CI Triagecanton-network/splice | 117 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Fix Broken Datadog Provider TestsDataDog/terraform-provider-datadog | 468 | — | ~2.4k | Automated safety check: Notes | MPL-2.0 | |
| Grails Test Fixerapache/grails-core | 2.9k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when writing unit tests, integration tests, creating test fixtures, or running tests with bench run-tests.
CloudAI-X/claude-workflow-v2
Designs and implements testing strategies for any codebase. An agent skill from CloudAI-X/claude-workflow-v2.
canton-network/splice
Triage a failed splice GitHub Actions job (cn-test-failures ref) into a reproducible evidence packet - fetch job log and artifact, isolate the flagged lines, check the known flake families for…
DataDog/terraform-provider-datadog
Runs an end-to-end workflow to diagnose, reproduce, fix and validate a failing integration test in the Datadog Terraform provider, ending with a draft PR.
apache/grails-core
Guides running, reviewing and fixing test failures across grails-core modules with Gradle, including targeted runs and the aggregate HTML and Markdown reports.
wshobson/agents
Test Temporal workflows with pytest, time-skipping, and mocking strategies.
SAP/open-ux-tools
Develop a new ESLint rule for @sap-ux/eslint-plugin-fiori-tools.
SAP/open-ux-tools
Sync odata-vocabularies package — update all vocabulary resource files to their latest published versions, and optionally add a new vocabulary given its JSON URL.
SAP/open-ux-tools
Add visual filters (chart-based) to SAP Fiori Elements filter bar or value help using CAP or ABAP RAP.
SAP/open-ux-tools
Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data.
SAP/open-ux-tools
Guidelines for SAP Fiori app development for CAP and standalone projects.
SAP/open-ux-tools
Configure, migrate, or run ESLint with @sap-ux/eslint-plugin-fiori-tools in SAP Fiori projects (standalone or CAP).
Works with
Categories
A skill your agent uses when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2…. Sap Fiori Opa5 Test Development is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization.test library) or OData V2 (fioriElementsTestLibrary).
Sap Fiori Opa5 Test Development fits situations like: reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library); OData V2 (fioriElementsTestLibrary); any request involving OPA5 journeys; journeyRunner setup.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a claude-code`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development in SAP/open-ux-tools) into .claude/skills/sap-fiori-opa5-test-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a codex`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-opa5-test-development in SAP/open-ux-tools) into .agents/skills/sap-fiori-opa5-test-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/open-ux-tools --skill sap-fiori-opa5-test-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sap-fiori-opa5-test-development, .gemini/skills/sap-fiori-opa5-test-development, .github/skills/sap-fiori-opa5-test-development and .opencode/skills/sap-fiori-opa5-test-development in your project.
Going by SKILL.md and its folder, Sap Fiori Opa5 Test Development needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.
SKILL.md names 3 domains. In commands or code: docs.oasis-open.org, schemas.microsoft.com and ui5.sap.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sap Fiori Opa5 Test Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 23k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sap Fiori Opa5 Test Development: Frappe Testing Unit (Impertio-Studio/Frappe_Claude_Skill_Package, 189 stars), Designing Tests (CloudAI-X/claude-workflow-v2, 1.4k stars), CI Triage (canton-network/splice, 117 stars) and Fix Broken Datadog Provider Tests (DataDog/terraform-provider-datadog, 468 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SAP (a GitHub organization, an official publisher) maintains it in SAP/open-ux-tools, which has 158 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: SAP/open-ux-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.