You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# test-assistant-mobile
CoTester mobile runner (Phase 1: Android). Gherkin features run through `cucumber-js`; step definitions drive the device with WebdriverIO `remote()` against an Appium 2 server (UiAutomator2).
The backend starts this project the same way it starts the web runner and passes the target device(s) in a run-context file (`COTESTER_MOBILE_RUN_CONTEXT`). See `.specify/specs/013-mobile-test-support/contracts/runner-contract.md` in the CoTester workspace.
## Execution host prerequisites
- Node.js 20+
- Android platform-tools (`adb`) on `PATH`
- An emulator or a USB/Wi-Fi device with debugging authorized (`adb devices -l` shows `device`)
- Appium 2 with the UiAutomator2 driver: `npm i -g appium && appium driver install uiautomator2`
- Appium running: `appium --port 4723`
## Layout
```text
features/{PROJECT}/{GROUP}/{NAME}.feature
features/steps/{PROJECT}/{GROUP}/{NAME}StepDef/{NAME}.steps.ts
pages/{PROJECT}/{GROUP}/{NAME}Page/{NAME}.page.ts
config/projects/{PROJECT}.{tier}[.{slug}].json # { "username", "password", "apiBaseUrl"? }
support/ # platform-owned, not generated
reports/ # cucumber json/ndjson, screenshots, videos, device-logs, page-source
```
## Local smoke run (without the backend)
The DEMO sample targets the Sauce Labs "My Demo App" (React Native, package `com.saucelabs.mydemoapp.rn`) installed on the device.
1. `npm ci`
2. Copy `config/projects/DEMO.dev.example.json` to `config/projects/DEMO.dev.json`.
3. Create `reports/run-context/local.json` (schema in runner-contract §4) with your device `udid`, app package and activity.
4. Run:
```bash
npx cross-env COTESTER_MOBILE_RUN_CONTEXT=reports/run-context/local.json TEST_ENV=dev SCREENSHOT_MODE=ALL_STEPS VIDEO_RECORDING=on \
cucumber-js features/DEMO/Login/login.feature --require "support/**/*.ts" --require "features/steps/DEMO/Login/**/*.ts"
```
# test-assistant-mobile