koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

C#で書いたPlaywrightのテストをGitHub Actionsで動かす

Playwrightは結構いろんな言語でテストを書ける

C#Microsoft.Playwright.MSTestの場合、Playwrightのインストール用のスクリプトが付属している*1ため、それを実行してやればGitHub Actionsのワークフローで実行できる。

毎回インストールするのは不経済な気もするけれど、とりあえず動いているのでよし!

E2ETest/E2ETest.csprojMicrosoft.Playwright.MSTestを用いたテストプロジェクトがある場合のワークフローはこんな感じになる。

name: Playwright Test
on:
  workflow_dispatch:
env:
  DOTNET_VERSION: 8.x.x
jobs:
  e2e:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v4
    
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: ${{ env.DOTNET_VERSION }}
    - run: dotnet restore E2ETest/E2ETest.csproj
    - run: dotnet build E2ETest/E2ETest.csproj --no-restore
    - run: pwsh E2ETest/bin/Debug/net8.0/playwright.ps1 install --with-deps
    - run: dotnet test E2ETest/E2ETest.csproj --no-build --verbosity normal

CI GitHub Actions | Playwrightには以下のような感じでインストールするといいんじゃないの? って書いてあるけれど、.NETラッパーを使ってる場合はこの限りではない様子だった。

     - uses: actions/setup-node@v3
     - name: Install playwright browsers
       run: npx playwright install-deps chromium

そんな感じ。

*1:Playwrightがインストールされていない環境で実行すると、このスクリプトを叩いてインストールしろってメッセージが出る