Misskey の Cypress E2E を動かす手順

Misskey の develop ブランチにある Cypress を使って E2E テストを動かす手順をまとめてた。

$ git submodule update --init
$ pnpm install

$ sudo apt-get -y install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
$ pnpm exec cypress install --force

$ cp .github/misskey/test.yml .config/
# `-d` つけてないのでターミナル開きっぱにしとく
$ docker compose -f packages/backend/test/compose.yml up

# 別タブで次の作業
$ export NODE_ENV=test
$ NODE_ENV=test pnpm build
$ NODE_ENV=test pnpm migrate
$ pnpm e2e

コレで動いた。 basic.cy.ts のテストが10件成功・2件失敗にはなるが。

package.jsoncy:run のところに、以下のように --headed オプションを付ければ、ヘッドありブラウザが開いて動作確認しながら E2E 回せる。

"cy:run": "pnpm cypress run --headed",

ポイントは Postgres が 54312、Redis が 56312 ポートで起動するようにすること、NODE_ENV=test 環境変数を付けることでこのテスト用のポート設定を利用させること、だった。

直接的な答えが書かれてるドキュメントは見当たらないのだが、CONTRIBUTING.mdRunning Unit Tests or Single-server E2E Tests 章から推測するしかなかった。