【Storybook】Test RunnerのCIを高速化する

StorybookのインタラクションテストをCIで回すと実行時間が問題になりがちなので、改善するためにやったことをまとめる。

ビルド時にtestオプションを付与する

Terminal window
storybook build --test

--testオプションを付与し、テスト時に不要な機能を除外することでビルド時間を短縮できる。

shardオプションで並列実行する

Terminal window
test-storybook --shard=1/n

--shardオプションを付与することで、テストスイートをn分割して並列実行できる。

test-storybook:
needs: setup
runs-on: ubuntu-latest
strategy:
matrix:
shardIndex: [ 1, 2, 3 ]
shardTotal: [ 3 ]
steps:
...
- name: Test_Storybook
run: npm run test-storybook -- --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}

GitHub Actionsで実行する場合、strategy.matrix.shardと組み合わせることも可能。