Testpack API
最終更新日 2020年04月09日(木)
Table of Contents
testpack は、Heroku CI の “定評のある” 機能性を強化するスクリプトです。testpack は、テストをビルド、コンパイル、実行する方法を理解しているスクリプトで 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 には、次のものがあります。
フィードバック
この API は改善途上です。実装者と利用者にとって素晴らしい体験を実現できるよう、皆様の協力を得てその方向性を検討していきたいと考えています。提案、問題点、またはその他のフィードバックがありましたら、heroku-ci-feedback@heroku.com までお寄せください。