Linux環境でServerspecを使ってみる part5

今回はこちらの続きで、テストの実行方法について簡単に解説します。
前回:Linux環境でServerspecを使ってみる part4 - ressyのナレッジ的なブログ

テストを実行するコマンド

まずは、前回実行したコマンドをベースに、テストの実施方法を解説します。

$ ASK_SUDO_PASSWORD=1 bundle exec rake

最初のASK_SUDO_PASSWORD=1は、テスト実行時にsudoパスワードを要求するかを表す環境変数です。
こちらの記事で解説した通り、リモートでテストを実施する場合はsudo権限を持ったログインユーザでテストを実施します。
Linux環境でServerspecを使ってみる part2 - ressyのナレッジ的なブログ
この環境変数によってsudoパスワードを入力し、リモートでテストを実行できるようにします。
ASK_SUDO_PASSWORDを使用しない場合、SUDO_PASSWORDという別の環境変数にsudoパスワードを直接設定する必要があります。

bundle exec rakeは、Gemfileで指定された環境でrakeを実行することを表しています。
rakeコマンドによって、同ディレクトリにあるRakefileが実行され、さらにそこからディレクトspec配下のテストコードが順次読み込まれてテストが実施されます。

簡単ですが、コマンドの解説は以上です。
ちなみに、今回実行したコマンドだと、テスト対象サーバが複数台あったり、1サーバあたりで複数のテストファイルがある場合、コマンドを実行するたびに全てのサーバ・テストファイルが実行されます。
実際にテストを流す場面では「このサーバだけテストしたい」とか「httpd.confの修正だけをしたから、httpdまわりだけテストしたい」といったことが多いかと思います。
次回の記事では、このような場合のテスト方法を取り上げたいと思います。

参考

この記事は、以下を参考にしています。

Serverspec - Home

「Serverspec」を使ってサーバー環境を自動テストしよう - さくらのナレッジ