Coexistence
This guide explains how to run @wdio/dioxus-service alongside @wdio/tauri-service and @wdio/electron-service in the same monorepo.
Overview
Each service is designed to be independent. They share @wdio/native-types for TypeScript types and @wdio/native-spy for mock utilities, but they do not interfere with each other when configured correctly.
Capability Disambiguation
Each service identifies its target app via browserName:
| Service | browserName |
|---|---|
@wdio/dioxus-service | 'dioxus' |
@wdio/tauri-service | 'tauri' |
@wdio/electron-service | 'electron' |
When a WDIO runner starts, each service checks the browserName of each capability and only takes ownership of capabilities matching its framework. Unrecognized capabilities are passed through untouched.
Separate Config Files Per Service
The recommended approach is to maintain a separate wdio.conf.ts per framework:
your-monorepo/
├── apps/
│ ├── dioxus-app/ # Dioxus app source
│ ├── tauri-app/ # Tauri app source
│ └── electron-app/ # Electron app source
├── e2e/
│ ├── test/