Table of Contents [expand]
最終更新日 2024年10月11日(金)
Heroku CI では、実行時間を大幅に短縮するための最大 32 個の dyno にまたがる分散テスト実行がサポートされています。

クイックスタート
アプリの app.json ファイルの formation キーの下でテスト実行の並列処理を指定します。
{
"environments": {
"test": {
"formation": {
"test": {
"quantity": 32
}
}
}
}
}
この設定により、テスト実行あたり 32 個のテスト dyno が起動されます。
テストスイートの並列化
Heroku CI は、並列テスト実行の一部である dyno に次の環境変数を公開します。
CI_NODE_TOTAL: テスト実行での dyno の合計数CI_NODE_INDEX: テスト実行でのこの dyno のインデックス (0 インデックス付け)
これらの値を使用して、並列テストランナーに各 dyno でどのテストを実行すべきかを指定します。
テストランナー
並列実行をサポートするテストランナーには次のものがあります (ただし、これに限定されません)。
Ruby
- ci_queue
- knapsack gem または Knapsack Pro アドオン
Javascript
Ember.js
並列テスト実行でのデータベース
並列テスト実行での dyno は、テスト実行のためにプロビジョニングされたいずれかのデータベース (およびその他のアドオン) の同じインスタンスを共有します。つまり、Heroku Postgres インスタンスが最大 32 個の dyno で共有される可能性があります。
多くのテストフレームワークでは、データベースへの排他アクセスが発生することが予測されます。実際のテストフレームワークがこれに該当する場合は、テスト実行で Heroku Postgres と Heroku Key-Value Store に特殊な in-dyno プランをプロビジョニングできます。これらのアドオンのプランを app.json ファイルで次のように変更します。
{
"addons": [
"heroku-postgresql:in-dyno",
"heroku-redis:in-dyno"
]
}
Postgres の拡張機能は現在、in-dyno Heroku Postgres プランによって制限されています。サポートされている拡張機能の確認