Continuous Integration
Utilizing Linux and some programs to create a fake display, it is possible to run WebDriver tests with tauri-driver on your CI. The following example uses the WebdriverIO example we previously built together and GitHub Actions.
This means the following assumptions:
- The Tauri application is in the repository root and the binary builds when running 
cargo build --release. - The WebDriverIO test runner is in the 
webdriver/webdriveriodirectory and runs whenyarn testis used in that directory. 
The following is a commented GitHub Actions workflow file at .github/workflows/webdriver.yml
# run this action when the repository is pushed to
on: [push]
# the name of our workflow
name: WebDriver
jobs:
  # a single job named test
  test:
    # the display name of the test job
    name: WebDriverIO Test Runner
    # we want to run on the latest linux environment
    runs-on: ubuntu-latest
    # the steps our job runs **in order**
    steps:
      # checkout the code on the workflow runner
      - uses: actions/checkout@v2
      # install system dependencies that Tauri needs to compile on Linux.
      # note the extra dependencies for `tauri-driver` to run which are: `webkit2gtk-driver` and `xvfb`
      - name: Tauri dependencies
        run: >-
          sudo apt-get update &&
          sudo apt-get install -y
          libgtk-3-dev
          libayatana-appindicator3-dev
          libwebkit2gtk-4.0-dev
          webkit2gtk-driver
          xvfb
      # install the latest Rust stable
      - name: Rust stable
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      # we run our rust tests before the webdriver tests to avoid testing a broken application
      - name: Cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
      # build a release build of our application to be used during our WebdriverIO tests
      - name: Cargo build
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release
      # install the latest stable node version at the time of writing
      - name: Node v16
        uses: actions/setup-node@v2
        with:
          node-version: 16.x
      # install our Node.js dependencies with Yarn
      - name: Yarn install
        run: yarn install
        working-directory: webdriver/webdriverio
      # install the latest version of `tauri-driver`.
      # note: the tauri-driver version is independent of any other Tauri versions
      - name: Install tauri-driver
        uses: actions-rs/cargo@v1
        with:
          command: install
          args: tauri-driver
      # run the WebdriverIO test suite.
      # we run it through `xvfb-run` (the dependency we installed earlier) to have a fake
      # display server which allows our application to run headless without any changes to the code
      - name: WebdriverIO
        run: xvfb-run yarn test
        working-directory: webdriver/webdriverio