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.json
の cy:run
のところに、以下のように --headed
オプションを付ければ、ヘッドありブラウザが開いて動作確認しながら E2E 回せる。
"cy:run": "pnpm cypress run --headed",
ポイントは Postgres が 54312、Redis が 56312 ポートで起動するようにすること、NODE_ENV=test 環境変数を付けることでこのテスト用のポート設定を利用させること、だった。
直接的な答えが書かれてるドキュメントは見当たらないのだが、CONTRIBUTING.md
の Running Unit Tests or Single-server E2E Tests
章から推測するしかなかった。