tapsmith
v0.7.0
Published
Mobile app testing framework — TypeScript SDK and test runner
Maintainers
Readme
Tapsmith
Mobile app testing framework with a Playwright-inspired API for Android and iOS.
import { test, expect } from "tapsmith";
test("app launches and shows welcome screen", async ({ device }) => {
await expect(device.getByText("Welcome")).toBeVisible();
});
test("can navigate to settings", async ({ device }) => {
await device.getByRole("button", { name: "Settings" }).tap();
await expect(device.getByText("Settings")).toBeVisible();
});Features
- Playwright-style locators --
getByText(),getByRole(),getByContentDesc(), and more - Auto-waiting assertions --
toBeVisible(),toBeChecked(),toHaveText()poll until the condition is met - Android and iOS -- same API, same test files, both platforms
- Parallel execution -- multi-device test runs with automatic emulator/simulator provisioning
- Trace viewer -- timeline of screenshots, actions, and logs for debugging failures
- Network capture -- record and assert on HTTP/HTTPS traffic
- CI-ready -- run headless on GitHub Actions, CircleCI, or any CI with device access
Quick Start
Tapsmith requires Node.js 22 or newer — check with node --version first. On older Node, npm can install an old Tapsmith release whose commands don't match these docs, or none at all.
npm install -D tapsmith # or: yarn add -D tapsmith / pnpm add -D tapsmith
npx tapsmith init
npx tapsmith testThe init wizard detects your environment, walks through platform configuration, and generates your config file and an example test.
With Yarn, run the CLI as yarn tapsmith; with pnpm, pnpm exec tapsmith. pnpm 11+ and Yarn Plug'n'Play each need one setting first: see Installation.
Documentation
License
Apache-2.0
