毎回 E2E テストを走らせている

時雨堂の WebRTC SFU Sora は Erlang/OTP で実装していますが、E2E テストは Python で書いています。WebRTC や 分散システムなど、様々な機能の E2E テストがあります。

テストランナーには pytest を利用しているのですが、この E2E テストはそのまま直列で実行すると、数時間かかります。これを GitHub Acitons のランナーを大量に利用し並列で実行することで、数分で E2E テストが終わらせるようにしました。これによりプッシュ毎に E2E を走らせられるようになりました。

テストが終わるのが早いので「とりあえずプッシュして確認する」と言うことも気軽にできるようになりました。

Sora は分散システムかつ音声や映像をリアルタイムに扱うため、かなり複雑な実装なのですが、E2E が毎回走るため安心して開発することができています。

プッシュ単位での E2E テスト実行、お勧めです。