koudenpaのブログ

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

Cypress いいね

これ。

www.cypress.io

この記事は Cypress でE2Eテストの入り口やってみた体験レポートです。

それ以上の情報はないです。しいて言うなら、使うのに迷うことはないので使いやすいんじゃないか? というのが分かるくらい。

Cypress がなんなのかは全然調べてなくて、とりあえず使ってみた状態。とにかくE2Eテストをとりあえず(大事なことなので二回書いたんだろう)動かしたかった。

そういう話はちゃんと書いてある。気が向いたら読もう。

追記:大事なことを忘れていた、とりあえずググって、SaaSとしてFree枠があったのが使ってみるポイントだった。


GitHub - 7474/SRC: SRC - Simulation RPG Construction - の C# .NET への移植版 SRC# です。 ではベースブランチへのマージ時に Blazor WebAssembly のアプリケーションをGitHub Pagesに配置している。

7474.github.io

このアプリケーションのユーザーは(多分)僕一人で、たまに眺めている。

のだけれど、先日アクセスしたらクライアントサイドで実行時エラーして動かなかった。

テストとか特にしてなくて「ビルドが通らば動くでしょ」位の気持ちで配置しているのだけれど、実行時エラーするときはする。WebAssembly の.NETランタイムでは他のランタイムよりもそうなることも多いだろう。

「見たいなー」って思ったときに動かないと嫌なので「じゃぁE2Eテストしてみるか」と思って何となくググった結果出てきたのが Cypress だったので試してみた形だ。

特に迷うことなくBlazor WebAssembly のアプリケーションがとりあえず動いていること』のテストが構成できて良かった。

GitHub Actions向けのActionも用意されていて、とても簡単に結果をSaaSにアップロードできる。

この程度の設定で済んでしまう。

  e2e:
    # https://docs.cypress.io/guides/continuous-integration/github-actions#Basic-Setup
    name: monitoring
    runs-on: ubuntu-latest
    needs: publish
    steps:
      - name: checkout
        uses: actions/checkout@master
      - name: Cypress run
        uses: cypress-io/github-action@v2
        with:
          working-directory: ./SRC.Sharp/SRCTestBlazor/E2E
          record: true
        env:
          CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

ので、エラーした時に視覚的な情報(含む動画)も見られてよい感じだった。

f:id:koudenpa:20210513013540p:plain
テスト失敗の様子が動画で見られる

何もない原始時代から、一気に文明開化してしまった。

仕事ではE2Eテストっぽいことをやっている場面もあるので全く知らない世界ではなかったのだけれど、サービスとして提供されてるものは導入が簡単で体験がいい。

そんな感じ。