Google、Dockerイメージに対するテスト自動化フレームワーク「Container Structure Tests」オープンソースで公開
Googleは、同社がコンテナをリリースする際に社内でテストツールとして利用してきた「Container Structure Test」フレームワークをオープンソースとして公開しました。
Container Structure Testは、コンテナ内部でコマンドを実行することで正しい出力やエラーが帰ってくるかどうかや、コンテナ内部のファイルが正しく格納されているかなどの検証を実行できるフレームワークです。
具体的には下記のテストをサポートしていると説明されています。
Command Tests
コンテナイメージ内部でコマンドを実行し、正しい出力やエラーが返ってくるかを検証する。
File Existence Tests
コンテナイメージ内部に、あるファイルがファイルシステム内の適切な位置に存在しているかどうかを検証する。
File Content Tests
コンテナイメージ内のファイルシステムにあるファイルのコンテンツとメタデータを検証する
A unique Metadata Test
コンテナ自体のコンフィグレーションとメタデータを検証する
テストはスクリプトファイルなどを書くことなく、JSONもしくやYAMLファイルで記述できます。下記がコマンドテストのサンプルです。コマンド名や引数と期待される出力結果などが並ぶ簡潔なもののようです。
commandTests:
- name: "gunicorn flask"
setup: [["virtualenv", "/env"], ["pip", "install", "gunicorn",
"flask"]]
command: "which"
args: ["gunicorn"]
expectedOutput: ["/env/bin/gunicorn"]
- name: "apt-get upgrade"
command: "apt-get"
args: ["-qqs", "upgrade"]
excludedOutput: [".*Inst.*Security.* | .*Security.*Inst.*"]
excludedError: [".*Inst.*Security.* | .*Security.*Inst.*"]
あわせて読みたい
ExcelにPython搭載か?/Dockerコンテナ時代の第一章の終わり/ブログでメシが食えるか? ほか、2017年12月の人気記事
≪前の記事
Amazon EC2の最新基盤として「VMware Cloud on AWS」や「EC2ベアメタル」の実現にもつながったAWSの「Nitro System」とは?