Table of Contents [expand]
最終更新日 2025年02月16日(日)
testpack は、Heroku CI の “定評のある” 機能性を強化するスクリプトです。testpack は、テストをビルド、コンパイル、実行する方法を理解しているスクリプトで buildpack を補完します。
この記事は、クラシック buildpack を使用するアプリにのみ適用されます。
API
Testpack API は Buildpack API を補完するものです。そのため、このドキュメントでは、Heroku CI をサポートするために Buildpack API に追加された内容についてのみ説明します。testpack の実装では、Buildpack API のドキュメントで規定されているルール、規約、スタイルも尊重します。
testpack は次の 2 つのスクリプトで構成されます。
bin/test-compile: アプリケーションのソースコードをテスト可能なアプリに変換するために使用されます。bin/test: アプリのテストを実行します。
bin/test-compile
使用法
bin/test-compile BUILD_DIR CACHE_DIR ENV_DIR
まとめ
このスクリプトは bin/compile に似ていますが、デプロイ用のソースを準備する代わりにテスト用のソースを準備します。通常、bin/test-compile では bin/compile と同じ操作を実行しますが、テストの依存関係もインストールし、本番環境化の手順はスキップします。
使用法、スタイル、例については、bin/compile のドキュメントを参照してください。
bin/test
使用法
bin/test BUILD_DIR ENV_DIR
まとめ
このスクリプトでは、アプリケーションのテストスイートを実行します。ほとんどの実装では、ユーザーがローカルで実行するのと同じコマンドを実行して、完全なテスト実行を開始します。
環境
このスクリプトは、すべての .profile.d スクリプトと ENV_DIR エントリがすでにロードされ、環境変数として設定された状態で実行されます。
終了コード
Heroku CI では、このスクリプトの終了コードを評価して、テスト実行が合格と不合格のどちらだったかを判断します。0の終了コードはテスト実行の成功を示し、それ以外の終了コードはテストの失敗を示します。
出力
Heroku CI では、Test Anything Protocol (TAP) に従って、このスクリプトの出力を評価し、テストケースの合格と不合格の解析を試みます。TAP テストの合格と失敗を Heroku CI で検出できる場合、開発者は拡張された UI でテスト実行を確認できます。TAP 形式の出力は testpack を実装するために必須ではありませんが、望ましいものです。
testpack の例
testpack を理解するための最も簡単な方法は、既存の実装を確認することです。Testpack API を実装済みの buildpack には、次のものがあります。