https://github.com/ui5-community/wdi5-workshop
focus: DevX, CI, on-boarding
- DevX w/
wdi5
- Breakout Sessions
- js-app (@The_dominiK) -> page objects, test structuring
- ts-app (@vobu) -> one abstraction layer more
- fe-app (@scoen) -> FE OData v4 test library
- walk through
wdi5
codebase
Node.js │ browser
│
┌────────────────────┐ │ ┌─────────────────────┐
│ ├────────┼─►│ UI5 │
│ wdi5 │ │ │ RecordReplay API │
│ │◄───────┼──┤ │
│ (wdio-ui5-service) │ │ └─────────────────────┘
┌──────┼────────────────────┼──────┐ │
│ │ │ │ │
│ └────────────────────┘ │ │
│ WebdriverIO │ │
│ │ │
│ │ │
└──────────────────────────────────┘ │
│
│
┌───── you ──────┐
│ │
▼ ▼
┌──────────────┐ ┌────────────────┐
│ │ │ │
│ ui5-tooling │ │ │
│ (webserver) │◄───┤ wdi5 │
│ │ │ │
│ UI5 app │ │ test execution │
│ │ │ │
└──────────────┘ └────────────────┘
- install & config
wdi5
npm init wdi5
npx wdio config
- docker image
→ ui5 tooling, mocha, spec reporter
- OPA5-compatible "matcher"
- test recorder
wdi5
dialect - UI5 API for controls
- fluent async api
- code completion
- headless/
--headless
--watch
.skip
&&.only
- debug
await browser.debug()
- VS Code debug
--debug
-> auto dev tools
await browser.screenshot()
- js-app (@The_dominiK) -> page objects, test structuring
- ts-app (@vobu) -> one abstraction layer more
- fe-app (@scoen) -> FE OData v4 test library
- use the docker image locally + in pipeline
- hook up to Browerstack
/src
-> Node.js-scoped "core" (TS, compiles to /dist
)
/client-side-js
-> browser-scoped "core" (gets used "as is")
/docs
-> Docsify
-based documentation
npm run build:watch
mono repo -> use current dev soures in /examples/**/*