{"id":31610265,"url":"https://github.com/webdriverio/desktop-mobile-testing","last_synced_at":"2026-01-20T16:35:31.063Z","repository":{"id":314589880,"uuid":"1054355562","full_name":"webdriverio/desktop-mobile-testing","owner":"webdriverio","description":"Integration services for cross-platform testing on Electron, Tauri and Flutter with WebdriverIO","archived":false,"fork":false,"pushed_at":"2025-10-04T15:18:36.000Z","size":9,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-04T17:27:38.165Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdriverio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"tidelift":"npm/webdriverio","open_collective":"webdriverio"}},"created_at":"2025-09-10T18:07:13.000Z","updated_at":"2025-10-04T15:19:01.000Z","dependencies_parsed_at":"2025-09-13T13:38:00.425Z","dependency_job_id":"6520fc7d-9e64-408a-a2cf-3c3b87706d30","html_url":"https://github.com/webdriverio/desktop-mobile-testing","commit_stats":null,"previous_names":["webdriverio/desktop-testing","webdriverio/desktop-mobile-testing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/webdriverio/desktop-mobile-testing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fdesktop-mobile-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fdesktop-mobile-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fdesktop-mobile-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fdesktop-mobile-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdriverio","download_url":"https://codeload.github.com/webdriverio/desktop-mobile-testing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fdesktop-mobile-testing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278590821,"owners_count":26012020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-06T09:47:22.751Z","updated_at":"2025-12-27T17:45:27.045Z","avatar_url":"https://github.com/webdriverio.png","language":null,"funding_links":["https://tidelift.com/funding/github/npm/webdriverio","https://opencollective.com/webdriverio"],"categories":[],"sub_categories":[],"readme":"# WebdriverIO Cross-Platform Testing Services\n\n\u003e Integration services for cross-platform testing on Electron, Tauri, Flutter, and Neutralino with WebdriverIO\n\n## Overview\n\nThis monorepo contains WebdriverIO service packages for testing desktop and mobile applications across multiple frameworks:\n\n- **Electron Service** - Test Electron applications with automatic binary detection, CDP bridge for main process access, and comprehensive API mocking\n- **Tauri Service** - Test Tauri applications with official tauri-driver integration and multiremote support\n- **Flutter Service** - Test Flutter apps on iOS, Android, Windows, macOS, and Linux with Appium integration (coming soon)\n- **Neutralino Service** - Test Neutralino.js applications with WebSocket API bridge (coming soon)\n\n## Quick Start\n\n```bash\n# Install dependencies\npnpm install\n\n# Build all packages\npnpm turbo build\n\n# Run tests\npnpm turbo test\n\n# Run linting\npnpm turbo lint\n```\n\n## Project Structure\n\n```\ndesktop-mobile-testing/\n├── packages/               # Service packages\n│   ├── electron-service/   # @wdio/electron-service\n│   ├── tauri-service/      # @wdio/tauri-service\n│   ├── electron-cdp-bridge/ # @wdio/electron-cdp-bridge\n│   ├── electron-types/     # @wdio/electron-types\n│   ├── native-utils/       # @wdio/native-utils\n│   └── bundler/            # @wdio/bundler\n├── fixtures/              # Test fixtures and example apps\n│   ├── e2e-apps/         # E2E test applications\n│   └── package-tests/    # Package test applications\n├── e2e/                  # E2E test scenarios\n├── docs/                 # Documentation\n└── scripts/              # Build and utility scripts\n```\n\n## Packages\n\n### Electron Service\n\nTest Electron applications with WebdriverIO.\n\n- 📦 **Package**: `@wdio/electron-service`\n- 📖 **Docs**: [packages/electron-service/README.md](packages/electron-service/README.md)\n- ✨ **Features**: Binary detection, CDP bridge, API mocking, window management\n\n### Tauri Service\n\nTest Tauri applications with WebdriverIO.\n\n- 📦 **Package**: `@wdio/tauri-service`\n- 📖 **Docs**: [packages/tauri-service/README.md](packages/tauri-service/README.md)\n- ✨ **Features**: tauri-driver integration, multiremote support, binary detection\n\n### Shared Utilities\n\nCommon utilities shared across all framework services.\n\n- 📦 **Package**: `@wdio/native-utils`\n- 📖 **Docs**: [packages/@wdio/native-utils/README.md](packages/@wdio/native-utils/README.md)\n\n## Development\n\n### Requirements\n\n- Node.js 18 LTS or 20 LTS\n- pnpm 10.12+\n\n### Setup\n\n```bash\n# Install pnpm globally if you don't have it\nnpm install -g pnpm\n\n# Install dependencies\npnpm install\n\n# Build all packages\npnpm turbo build\n```\n\n### Commands\n\n```bash\n# Development\npnpm dev                   # Watch mode for development\npnpm build                 # Build all packages\npnpm test                  # Run all tests\npnpm test:coverage         # Run tests with coverage\n\n# Code Quality\npnpm lint                  # Lint all packages\npnpm lint:fix              # Lint and auto-fix\npnpm format                # Format code with Biome\npnpm typecheck             # Type check all packages\n\n# Package-specific commands\npnpm --filter @wdio/native-utils build\npnpm --filter @wdio/electron-service test\npnpm --filter @wdio/tauri-service test\n\n# E2E Testing\npnpm e2e                          # Run all E2E tests\npnpm e2e:electron-builder          # Run Electron builder tests\npnpm e2e:electron-forge            # Run Electron forge tests\npnpm e2e:electron-no-binary        # Run Electron no-binary tests\npnpm e2e:tauri                     # Run Tauri tests\n```\n\n### Adding a New Package\n\nSee [docs/package-structure.md](docs/package-structure.md) for guidelines on creating new packages.\n\n## Testing\n\nThis project maintains 80%+ test coverage across all packages. Tests are organized as:\n\n- **Unit tests**: Fast, isolated tests for individual modules\n- **Integration tests**: Tests for package interactions\n- **E2E tests**: End-to-end tests with real applications\n\n```bash\n# Run all tests\npnpm test\n\n# Run tests for specific package\npnpm --filter @wdio/electron-service test\npnpm --filter @wdio/tauri-service test\n\n# Run with coverage\npnpm test:coverage\n\n# Run E2E tests\npnpm e2e                          # All E2E tests\npnpm e2e:electron-builder          # Electron builder E2E\npnpm e2e:electron-forge            # Electron forge E2E\npnpm e2e:tauri                     # Tauri E2E\n\n# Run package tests (isolated test apps)\npnpm test:package                 # Both Electron and Tauri\npnpm test:package:electron        # Electron only\npnpm test:package:tauri           # Tauri only\n```\n\n## Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### Development Workflow\n\n1. Fork and clone the repository\n2. Create a new branch: `git checkout -b feature/my-feature`\n3. Make your changes\n4. Run tests: `pnpm test`\n5. Run linting: `pnpm lint:fix`\n6. Commit your changes (pre-commit hooks will run automatically)\n7. Push and create a pull request\n\n## Architecture\n\nThis monorepo uses:\n\n- **pnpm workspaces** - Efficient package management and linking\n- **Turborepo** - Fast, incremental builds with smart caching\n- **TypeScript** - Type-safe development with dual ESM/CJS builds\n- **Vitest** - Fast unit and integration testing\n- **Biome** - Fast formatting and linting\n- **GitHub Actions** - Multi-platform CI/CD\n\nSee [docs/architecture.md](docs/architecture.md) for more details (coming soon).\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Links\n\n- [WebdriverIO](https://webdriver.io)\n- [Documentation](https://webdriver.io/docs/gettingstarted)\n- [WebdriverIO Community](https://github.com/webdriverio-community)\n\n---\n\n**Starting commit**: `e728cf1` (chore: add agentos)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fdesktop-mobile-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdriverio%2Fdesktop-mobile-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fdesktop-mobile-testing/lists"}