Jenkins CI

Jenkins CI は、現在市場で最も人気のある継続的インテグレーションサーバーの 1 つです。AngularJS プロジェクトを開発中に(できれば早い時期に)、コードバージョニングシステムから自動テストを実行したい場合があります。Jenkins はこのタスクに役立ちます。このチュートリアルでは、Jenkins が CI 環境で既にセットアップされ、実行されていることを前提としています。

前提条件のインストール #

Jenkins CI サーバーに次のツールをインストールする必要があります

  • Node
  • Karma

次の Jenkins プラグインはオプションですが、次のガイドラインはこのプラグインに基づいています

  • EnvInject - これにより、特定の Linux ディストリビューションとユーザー権限での作業が容易になります。

Karma の設定 #

必要に応じて、karma.conf.js ファイルに次の追加と変更を加えます

singleRun: true,
reporters: ['dots', 'junit'],
junitReporter: {
  outputFile: 'test-results.xml'
},

test-results.xml ファイルが現在作業中のディレクトリ内の、テストが実行されたブラウザにちなんだ名前のサブディレクトリに書き込まれることに注意してください(Jenkins にそれらのファイルの場所を指定する必要があります)。

新しい Jenkins ジョブの作成 #

Jenkins で、基本的な設定(名前、説明、パラメータ、取得元のソースコードリポジトリなど)で Angular/Karma のための新しいジョブを開始します

ビルド環境の設定 #

まずジョブページに移動し、「構成」をクリックします。次に、「ビルド環境」サブセクションで、「Inject environment variables to the build process'」(ビルドプロセスに環境変数を挿入)というチェックボックスにチェックを入れます。テキストボックスが数個表示され、「Properties Content」(プロパティのコンテンツ)ボックスに以下を設定します

$ PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
$ PHANTOMJS_BIN=/usr/local/bin/phantomjs #or wherever PhantomJS happens to be installed

ページの下部にある、「Post-build Actions」(ビルド後アクション)サブセクションで、「Publish JUnit test result report」(JUnit テスト結果レポートの発行)を「Post-build action」(ビルド後アクション)のドロップダウンメニューから追加します。テストレポート XMLs というラベルのテキストボックスが表示されたら、Jenkins ジョブワークスペースのルートから見た test-results.xml ファイルのパスを入力します(この場合、ワイルドカードを使用できます。したがって、**/test-results.xml は、ブラウザ固有のサブディレクトリ内に格納されていたとしてもファイルを検索します)。